You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
feat(mcp): rename tools to discover/inspect/call + review fixes (#14)
* feat: add CLI/Agent sections to getting-started docs + fix CLI multi-region gaps
- Add QVeris CLI and Agent Setup sections to all three getting-started
docs (en-US, zh-CN, cn/zh-CN), reorder sections: CLI → MCP → SDK → API
- Fix CLI multi-region support: region-aware account URLs in login/credits,
display region in doctor/whoami/config list, pass baseUrl in login validation,
store region in session, add QVERIS_REGION to help text
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
* feat(cli): interactive region selection during login
When QVERIS_REGION or --base-url is not set, `qveris login` now prompts
the user to choose their region (Global/China) before showing the API key
URL. This removes the need to set environment variables before first login.
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
* fix(cli): handle custom region in getSiteUrl and persist baseUrl in session
Address PR review feedback:
- getSiteUrl() now accepts baseUrl param to infer site URL for custom regions
- All callers pass baseUrl to getSiteUrl()
- Session now stores baseUrl alongside region for custom region support
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
* docs: update CLI docs for interactive region selection and region display
- login: document interactive region prompt (Global/China)
- whoami: mention region display
- doctor: mention region and base URL display
- session: document region and baseUrl storage
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
* docs: clarify agent/script region usage vs interactive login prompt
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
* chore(cli): bump version to 0.4.0
- Interactive region selection during login
- Multi-region fixes (region-aware URLs, doctor/whoami/config region display)
- Custom region support (getSiteUrl inference, baseUrl in session)
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
* docs(mcp): add multi-region configuration documentation
- README: add QVERIS_REGION and QVERIS_BASE_URL env vars, Region section
with key prefix table, priority chain, and China config example
- docs/en-US/mcp-server.md: add env var list, region auto-detection note,
China region config example
- docs/zh-CN/mcp-server.md: same updates in Chinese
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
* fix(cli): use resolved baseUrl in all API calls instead of raw flag
All commands now pass the region-resolved baseUrl to API calls,
ensuring QVERIS_REGION env var and key prefix detection are respected
for actual requests, not just for display/session purposes.
Fixes: credits, discover, doctor, interactive
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
* fix(cli): remove duplicate resolveBaseUrl call in discover.mjs
Region and baseUrl are already resolved at function entry (line 11).
The second call inside the try block was redundant.
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
* chore(mcp): bump version to 0.4.1
- Add multi-region documentation to README
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
* feat(mcp): rename tools to discover/inspect/call, aligned with CLI
Rename MCP tools to match CLI naming convention:
- search_tools → discover
- get_tools_by_ids → inspect
- execute_tool → call
Old names are kept as deprecated aliases with stderr warnings.
All schema descriptions updated to reference new names.
Documentation updated across README, mcp-server docs, and getting-started pages.
Bump version to 0.5.0.
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
* fix: address code review suggestions
- Update stale JSDoc comments referencing old tool names (search_tools →
discover, execute_tool → call) in MCP types, get-by-ids, and execute
- Make 402 pricing URL region-aware in both MCP client and CLI API client
(qveris.cn for CN region, qveris.ai for global)
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
* fix(mcp): remove misleading "as a JSON string" from call tool description
params_to_tool schema type is object, not string. The old description
could cause LLMs to serialize params as a JSON string instead of passing
a structured object.
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
---------
Co-authored-by: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
Copy file name to clipboardExpand all lines: docs/en-US/getting-started.md
+7-7Lines changed: 7 additions & 7 deletions
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -47,9 +47,9 @@ The CLI also supports interactive mode (`qveris interactive`), code generation (
47
47
48
48
If your client supports **Model Context Protocol (MCP)**, you can add the official QVeris MCP server and immediately get:
49
49
50
-
-`search_tools` (Discover)
51
-
-`get_tools_by_ids` (Inspect)
52
-
-`execute_tool` (Call)
50
+
-`discover` (Discover)
51
+
-`inspect` (Inspect)
52
+
-`call` (Call)
53
53
54
54
For the full MCP reference, see [MCP Server documentation](mcp-server.md).
55
55
@@ -75,9 +75,9 @@ For the full MCP reference, see [MCP Server documentation](mcp-server.md).
75
75
76
76
The assistant will:
77
77
78
-
- call `search_tools` to discover matching capabilities (e.g. "weather")
79
-
- optionally call `get_tools_by_ids` to inspect the best candidate
80
-
- call `execute_tool` with the capability id + parameters
78
+
- call `discover` to find matching capabilities (e.g. "weather")
79
+
- optionally call `inspect` to review the best candidate
80
+
- call `call` with the capability id + parameters
81
81
82
82
---
83
83
@@ -340,7 +340,7 @@ Supported environments: Claude Code, OpenCode, Cursor, Trae, VS Code, and OpenCl
340
340
Use this (copy/paste) in your assistant's system prompt when enabling QVeris tools:
341
341
342
342
```text
343
-
You are a helpful assistant that can dynamically discover and call capabilities to help the user. First think about what kind of capabilities might be useful to accomplish the user's task. Then use the search_tools tool with a query describing the capability, not the specific parameters you will pass later. Then call suitable capabilities using the execute_tool tool, passing parameters through params_to_tool. If a capability has success_rate and avg_execution_time, consider them when selecting which to call. You can reference the examples given for each capability. You can make multiple tool calls in a single response.
343
+
You are a helpful assistant that can dynamically discover and call capabilities to help the user. First think about what kind of capabilities might be useful to accomplish the user's task. Then use the discover tool with a query describing the capability, not the specific parameters you will pass later. Then call suitable capabilities using the call tool, passing parameters through params_to_tool. If a capability has success_rate and avg_execution_time, consider them when selecting which to call. You can reference the examples given for each capability. You can make multiple tool calls in a single response.
Copy file name to clipboardExpand all lines: packages/mcp/README.md
+32-22Lines changed: 32 additions & 22 deletions
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -59,22 +59,22 @@ Add the QVeris server to your MCP client configuration:
59
59
60
60
Once configured, You could add this to system prompt:
61
61
62
-
> "You can use qveris MCP Server to dynamically search and execute tools to help the user. First think about what kind of tools might be useful to accomplish the user's task. Then use the search_tools tool with query describing the capability of the tool, not what params you want to pass to the tool later. Then call a suitable searched tool using the execute_tool tool, passing parameters to the searched tool through params_to_tool. You could reference the examples given if any for each tool. You may call make multiple tool calls in a single response."
62
+
> "You can use qveris MCP Server to dynamically discover and call tools to help the user. First think about what kind of tools might be useful to accomplish the user's task. Then use the discover tool with a query describing the capability of the tool, not what params you want to pass to the tool later. Then call a suitable tool using the call tool, passing parameters through params_to_tool. You could reference the examples given if any for each tool. You may make multiple tool calls in a single response."
63
63
64
-
Then your AI assistant can search for and execute tools:
64
+
Then your AI assistant can discover and call tools:
65
65
66
66
> "Find me a weather tool and get the current weather in Tokyo"
67
67
68
68
The assistant will:
69
-
1. Call `search_tools` with query "weather"
70
-
2.Review the results and select an appropriate tool
71
-
3. Call `execute_tool` with the tool_id and parameters
69
+
1. Call `discover` with query "weather"
70
+
2.Optionally call `inspect` to review tool details
71
+
3. Call `call` with the tool_id and parameters
72
72
73
73
## Available Tools
74
74
75
-
### `search_tools`
75
+
### `discover`
76
76
77
-
Search for available tools based on natural language queries.
77
+
Discover available tools based on natural language queries.
78
78
79
79
| Parameter | Type | Required | Description |
80
80
|-----------|------|----------|-------------|
@@ -91,47 +91,57 @@ Search for available tools based on natural language queries.
91
91
}
92
92
```
93
93
94
-
### `execute_tool`
94
+
### `inspect`
95
95
96
-
Execute a discovered tool with specific parameters.
96
+
Inspect tools by their IDs to get detailed information (parameters, success rate, latency, examples).
97
97
98
98
| Parameter | Type | Required | Description |
99
99
|-----------|------|----------|-------------|
100
-
|`tool_id`| string | ✓ | Tool ID from search results |
101
-
|`search_id`| string | ✓ | Search ID from the search that found this tool |
102
-
|`params_to_tool`| object | ✓ | A dictionary of parameters to pass to the tool |
100
+
|`tool_ids`| array | ✓ | Array of tool IDs to retrieve (at least one required) |
101
+
|`search_id`| string || Search ID from the discover call that returned the tool(s) |
103
102
|`session_id`| string || Session identifier (auto-generated if omitted) |
104
-
|`max_response_size`| number || Max response size in bytes (default: 20480) |
Get detailed descriptions of tools based on their tool IDs. Useful for retrieving information about specific tools when you already know their IDs from previous searches.
115
+
Call a discovered tool with specific parameters.
119
116
120
117
| Parameter | Type | Required | Description |
121
118
|-----------|------|----------|-------------|
122
-
|`tool_ids`| array | ✓ | Array of tool IDs to retrieve (at least one required) |
123
-
|`search_id`| string || Search ID from the search that returned the tool(s) |
119
+
|`tool_id`| string | ✓ | Tool ID from discover results |
120
+
|`search_id`| string | ✓ | Search ID from the discover call that found this tool |
121
+
|`params_to_tool`| object | ✓ | A dictionary of parameters to pass to the tool |
124
122
|`session_id`| string || Session identifier (auto-generated if omitted) |
123
+
|`max_response_size`| number || Max response size in bytes (default: 20480) |
0 commit comments