Skip to content

GML-2189 Release 1.0.3 - #5

Merged
chengbiao-jin merged 5 commits into
mainfrom
release_1.0.3
Sep 16, 2026
Merged

chengbiao-jin merged 5 commits into
mainfrom
release_1.0.3

Conversation

@chengbiao-jin

Copy link
Copy Markdown
Collaborator

Release 1.0.3. Full detail in CHANGELOG.md.

Added

  • Serve a subset of the tools — --allowed-tools and --blocked-tools, or TG_ALLOWED_TOOLS and TG_BLOCKED_TOOLS, narrow the tool list a client receives. A selector is a comma-separated list of categories (schema, data, query, vector, loading, utility, discovery), the capabilities read-only or destructive, or individual tool names. Serving only the tools that read cuts the payload an agent carries from 69 tools (~29,100 tokens) to 37 (~12,400).
  • HTTP sessions can narrow the list further — an X-TG-Tools header restricts a single session to a subset of what the deployment already serves. It can never widen it.
  • Every tool declares what it does — the MCP behavioural hints readOnlyHint, destructiveHint, idempotentHint, and openWorldHint are attached to all tools, so a client can run reads without prompting and ask before anything that removes data.
  • Tool-call logging — --log-tool-calls, or TG_LOG_TOOL_CALLS, writes one line per tool call to stderr recording the tool, the MCP session, and the host. Off by default. A shared deployment previously kept no record of what had been run against an instance.
  • Opt-in caller identity — --log-caller none|profile|username, or TG_LOG_CALLER_IDENTITY, chooses whether a line names the connection profile a call used, the TigerGraph account as well, or neither. It defaults to none and requires tool-call logging to be on. Separate from enabling logging because an account name generally identifies a person, and the server should not write personal data into a deployment's logs unasked. Callers authenticating by token or GSQL secret are recorded as an unknown account rather than under the placeholder username. Credentials and tool arguments are never logged at any setting.

Notes for operators

An unrecognised tool selector, a selection that leaves nothing to serve, or an unrecognised --log-caller value stops the server at startup rather than starting in a surprising state.

Verification

563 tests pass, including the end-to-end MCP workflow test driven against a live TigerGraph instance — create graph, load via add_nodes/add_edges, verify counts, drop graph.

Refs: GML-2184, GML-2185, GML-2187

- Narrow the served tool list by category, capability or name, from the
  command line or the environment
- Let an HTTP session narrow its own list further, never widen it
- Report an unusable selection at startup instead of serving a short list
- Declare read-only, destructive, idempotent and open-world behaviour on
  every tool so clients can decide what needs confirmation

Refs: GML-2184, GML-2185
@chengbiao-jin chengbiao-jin changed the title GML-2184 GML-2185 GML-2187 Release 1.0.3 GML-2189 Release 1.0.3 Sep 14, 2026
- Write one line per tool call to stderr, off by default
- Name the caller by connection profile or TigerGraph account, as a
  separate opt-in that requires call logging to be on
- Record an unknown account for token and secret callers instead of a
  placeholder name
- Never log credentials or tool arguments

Refs: GML-2187
- Cover the command line: transport, verbosity, tool selection and
  call-log settings, from flags and from the environment
- Cover the refuse-at-startup cases: unknown selectors, a selection that
  serves nothing, an unknown caller identity, a missing env file
- Distinguish an unreachable server from a rejected credential
- Report a failing tool as a response instead of breaking the session
- Check that every served tool can actually be dispatched

Refs: GML-2185, GML-2187
- Keep coverage artifacts out of the working tree's staged changes

Refs: GML-2189
Comment thread tigergraph_mcp/tools/tool_registry.py
- Refuse a withheld tool when it is called directly, not only when the
  tool list is advertised
- Apply the same refusal to a session that narrowed its own list
- Stop describing a withheld tool in the per-tool discovery output
- Keep reporting an unrecognised name as unknown, so a typo is not
  mistaken for a withheld tool

Refs: GML-2185
@chengbiao-jin
chengbiao-jin merged commit 1b833a9 into main Sep 16, 2026
5 checks passed
@chengbiao-jin
chengbiao-jin deleted the release_1.0.3 branch September 16, 2026 23:31
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants