MCP Server Builder
anthropics/skills
Guides the design and implementation of Model Context Protocol servers in TypeScript or Python, from tool naming and error messages to evaluation.
Finds, compares and calls third-party data and tool services through QVeris over MCP, and generates REST code for the ones worth keeping.
$ npx skills add QVerisAI/qveris-agent-toolkit --skill qveris -a claude-codeProject install by default; add -g for ~/.claude/skills/.
$ gh skill install QVerisAI/qveris-agent-toolkit qveris --agent claude-codeProject scope by default; add --scope user for a personal install. Needs GitHub CLI 2.90.0 or later (public preview).
$ git clone --depth 1 https://github.com/QVerisAI/qveris-agent-toolkit.git skills-src && mkdir -p .claude/skills && cp -r skills-src/skills/qveris .claude/skills/qveris && rm -rf skills-srcUse ~/.claude/skills/ instead of .claude/skills for a personal install. The folder must contain SKILL.md.
Claude Code skills documentation · loads skills from .claude/skills/
Install the "qveris" agent skill from https://github.com/QVerisAI/qveris-agent-toolkit/tree/main/skills/qveris into .claude/skills/qveris/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "qveris", then confirm the skill loads.Claude Code copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
$skill-installer install https://github.com/QVerisAI/qveris-agent-toolkit/tree/main/skills/qverisType this inside Codex. $skill-installer <name> installs a curated skill from openai/skills. The installer writes to $CODEX_HOME/skills (default ~/.codex/skills). Restart Codex if the skill does not show up.
$ npx skills add QVerisAI/qveris-agent-toolkit --skill qveris -a codexProject install goes to .agents/skills/; add -g for ~/.codex/skills/.
$ gh skill install QVerisAI/qveris-agent-toolkit qveris --agent codexProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/QVerisAI/qveris-agent-toolkit.git skills-src && mkdir -p .agents/skills && cp -r skills-src/skills/qveris .agents/skills/qveris && rm -rf skills-srcUse ~/.agents/skills/ instead of .agents/skills for a personal install.
Codex skills documentation · loads skills from .agents/skills/
Install the "qveris" agent skill from https://github.com/QVerisAI/qveris-agent-toolkit/tree/main/skills/qveris into .agents/skills/qveris/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "qveris", then confirm the skill loads.Codex copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
$ npx skills add QVerisAI/qveris-agent-toolkit --skill qveris -a cursorProject install goes to .agents/skills/; add -g for ~/.cursor/skills/.
$ gh skill install QVerisAI/qveris-agent-toolkit qveris --agent cursorProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/QVerisAI/qveris-agent-toolkit.git skills-src && mkdir -p .cursor/skills && cp -r skills-src/skills/qveris .cursor/skills/qveris && rm -rf skills-srcUse ~/.cursor/skills/ instead of .cursor/skills for a personal install.
Cursor skills documentation · loads skills from .cursor/skills/, .agents/skills/, .claude/skills/, .codex/skills/
Install the "qveris" agent skill from https://github.com/QVerisAI/qveris-agent-toolkit/tree/main/skills/qveris into .cursor/skills/qveris/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "qveris", then confirm the skill loads.Cursor copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
$ gemini skills install https://github.com/QVerisAI/qveris-agent-toolkit.git --path skills/qveris--scope user (default) or --scope workspace; --path is the subfolder of the repo that holds the skill; --consent skips the security confirmation prompt.
$ npx skills add QVerisAI/qveris-agent-toolkit --skill qveris -a gemini-cliProject install goes to .agents/skills/; add -g for ~/.gemini/skills/.
$ gh skill install QVerisAI/qveris-agent-toolkit qveris --agent gemini-cliProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/QVerisAI/qveris-agent-toolkit.git skills-src && mkdir -p .gemini/skills && cp -r skills-src/skills/qveris .gemini/skills/qveris && rm -rf skills-srcUse ~/.gemini/skills/ instead of .gemini/skills for a personal install, then run /skills reload.
Gemini CLI skills documentation · loads skills from .gemini/skills/, .agents/skills/
Install the "qveris" agent skill from https://github.com/QVerisAI/qveris-agent-toolkit/tree/main/skills/qveris into .gemini/skills/qveris/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "qveris", then confirm the skill loads.Gemini CLI copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
$ gh skill install QVerisAI/qveris-agent-toolkit qverisInstalls for Copilot at project scope by default; add --scope user for a personal install. Preview a skill first with gh skill preview. Needs GitHub CLI 2.90.0 or later (public preview).
$ npx skills add QVerisAI/qveris-agent-toolkit --skill qveris -a github-copilotProject install goes to .agents/skills/; add -g for ~/.copilot/skills/.
$ git clone --depth 1 https://github.com/QVerisAI/qveris-agent-toolkit.git skills-src && mkdir -p .github/skills && cp -r skills-src/skills/qveris .github/skills/qveris && rm -rf skills-srcUse ~/.copilot/skills/ instead of .github/skills for a personal install. Commit .github/skills so cloud agent and code review can use it.
GitHub Copilot skills documentation · loads skills from .github/skills/, .claude/skills/, .agents/skills/
Install the "qveris" agent skill from https://github.com/QVerisAI/qveris-agent-toolkit/tree/main/skills/qveris into .github/skills/qveris/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "qveris", then confirm the skill loads.GitHub Copilot copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
$ npx skills add QVerisAI/qveris-agent-toolkit --skill qveris -a opencodeOpenCode documents no install command of its own. Project install goes to .agents/skills/; add -g for ~/.config/opencode/skills/.
$ gh skill install QVerisAI/qveris-agent-toolkit qveris --agent opencodeProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/QVerisAI/qveris-agent-toolkit.git skills-src && mkdir -p .opencode/skills && cp -r skills-src/skills/qveris .opencode/skills/qveris && rm -rf skills-srcUse ~/.config/opencode/skills/ instead of .opencode/skills for a personal install.
OpenCode skills documentation · loads skills from .opencode/skills/, .claude/skills/, .agents/skills/
Install the "qveris" agent skill from https://github.com/QVerisAI/qveris-agent-toolkit/tree/main/skills/qveris into .opencode/skills/qveris/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "qveris", then confirm the skill loads.OpenCode copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
qverisFinds, compares and calls third-party data and tool services through QVeris over MCP, and generates REST code for the ones worth keeping.
The agent decides between its connected tools and QVeris by task fit, data quality and freshness, cost, user constraints and call overhead. QVeris is the pick when the environment lacks a capability or live structured data source, when the right provider is not known, when providers should be compared on relevance, schema, quality, latency or cost, when a preferred provider fails and a fallback is needed, or when you ask for it. Local computation and ordinary reading of web pages do not need it.
Phase one runs over MCP. The agent calls `discover` with a description of the functionality wanted, not parameter names, asks for only a few results, and if the best one already shows parameter guidance and cost, calls it directly with `call`, passing arguments in `params_to_tool`. `inspect` is added only when contract details are missing or candidates need comparing, and `probe` only to validate parameters or get a current quote, which is not a price reservation or authorization. The shortest safe path, discover then call, is the default. The skill also covers generating production REST code for the services it finds.
2 steps, taken from the step headings in SKILL.md.
Read from SKILL.md and the folder at commit c7f1737. It shows what the files ask for, not the result of running them.
Pre-approves nothing: there is no allowed-tools line, so your agent's usual permission prompts apply.
From allowed-tools in the SKILL.md frontmatter.
No scripts in the folder and no shell commands in SKILL.md (its code samples are python).
From the folder's file list and the shell code blocks in SKILL.md.
Hosts in commands or code, which the agent is likely to contact:
qveris.aiFrom URLs in SKILL.md, links to its own repository left out.
Names these keys or tokens, usually read from environment variables:
QVERIS_API_KEYAPI_KEYFrom names ending in _API_KEY, _TOKEN, _SECRET, _KEY or _PASSWORD in SKILL.md.
QVeris Tool Discovery loads about 2.2k tokens when it runs. Until then it costs about 74 tokens; SKILL.md has 929 words of instructions outside code blocks.
Estimates: characters ÷ 4, the usual rule of thumb; real counts depend on the model's tokenizer. Scripts and assets cost tokens only if the agent reads them.
The automated check found no risky patterns in SKILL.md.
Automated static check — not a guarantee. Review scripts before installing. It scans the text of SKILL.md for risky patterns (piping downloads into a shell, reading credential files, hidden Unicode, destructive commands); files beside SKILL.md are not scanned.
The full file from QVerisAI/qveris-agent-toolkit at commit c7f1737, republished under its MIT licence (© QVerisAI). 929 words, ~2,217 tokens.
.claude/skills/qveris/SKILL.md (or your agent's skills folder).For more detailed discovery query formulation, tool selection criteria, parameter handling, and error recovery, see the Agent Guidelines.
Choose among connected tools and QVeris using task fit, data quality/freshness, cost, user constraints, and call overhead. Use QVeris when at least one of these is true:
Local computation and transformations do not need QVeris. For qualitative pages, tutorials, or factual browsing, use an available browsing tool unless structured API data or provider routing is required.
When external functionality is needed, follow this two-phase workflow. Discover, Inspect, Probe, and Call are independent protocol actions, not four mandatory steps.
discover with a functionality description (not parameter names). Request only a few results unless comparison is necessary.call, passing parameters via params_to_tool.inspect only when selection or valid request construction depends on contract details omitted by Discover, multiple candidates need comparison, or a host-managed metadata entry needs refreshing.probe only when parameters need validation, a current quote is needed for a budget decision, or the user explicitly wants a preflight. Probe is not a prerequisite for Call; its quote is not a price reservation or user authorization.Optimize for the shortest safe path:
discover → call.call directly if the active integration supports that reuse.inspect and/or probe only when their information changes the selection or prevents a material error.Do not assume generic MCP or stateless SDK clients provide semantic route memory. Preserve the selected result's real search_id within the active flow. If the host explicitly exposes a current known-capability entry, reuse it only for an exact capability intent and unchanged provider/coverage constraints; rebuild all business parameters from the current request.
Inspect when that host entry's contract is missing or stale. Discover again when intent, coverage, provider, authorization, or endpoint context changes; the entry expires; the capability is unavailable; or comparison/fallback is needed. Never invent search_id, reuse another discovery's attribution, or cache credentials, sensitive user values, or business results.
For provider comparison, Inspect every candidate when current scope or a complete contract must be confirmed; a Discover summary is not confirmation. Probe every candidate when the comparison requires a current quote. Reuse may preserve an exact route, never business parameters or results: build parameters from the current request, and make a fresh Call for current, latest, today, or other time-sensitive data.
An explicit empty parameter contract means the tool takes no parameters. A missing contract is not equivalent: Inspect it or request the missing business input before Call. Preserve required, enum, and alternative/one-of constraints. Never copy sample values as if they were the user's request.
Compatibility note: legacy MCP names search_tools, get_tools_by_ids, and execute_tool remain deprecated aliases only. Prefer discover, inspect, and call in all new workflows.
QVeris separates pricing rules, pre-settlement billing, and final settlement:
billing_rule explains how a capability is priced.billing / pre_settlement_bill explains the theoretical charge for a call.usage_history and credits_ledger answer whether credits were actually charged and how the balance changed.When the user asks whether a failed call was charged, do not infer from cost alone. Query usage_history with the execution_id and inspect charge_outcome.
Use context-safe audit patterns:
mode: "summary" for usage or ledger totals.mode: "search" with precise filters such as execution_id, charge_outcome, min_credits, max_credits, or a date range.mode: "export_file" for large analysis; read the resulting JSONL file in chunks instead of returning all rows into context.Once a suitable tool is identified, generate code that calls the QVeris REST API directly. Do not reuse the MCP tool-call result — produce standalone code the user can run.
QVERIS_API_KEY environment variable; do not retrieve or expose MCP configuration secretssuccess field and error_messageimport requests
import os
API_KEY = os.environ.get("QVERIS_API_KEY")
BASE_URL = os.environ.get("QVERIS_BASE_URL", "https://qveris.ai/api/v1").rstrip("/")
if not API_KEY:
raise RuntimeError("Set QVERIS_API_KEY before running this code")
def call_tool(tool_id: str, search_id: str, params: dict) -> dict:
"""Call a QVeris capability and return the result."""
resp = requests.post(
f"{BASE_URL}/tools/execute",
params={"tool_id": tool_id},
headers={"Authorization": f"Bearer {API_KEY}"},
json={
"search_id": search_id,
"session_id": "",
"parameters": params,
"max_response_size": 20480,
},
timeout=60,
)
resp.raise_for_status()
try:
data = resp.json()
except requests.exceptions.JSONDecodeError:
raise RuntimeError("Failed to decode API response as JSON.")
if not data.get("success"):
raise RuntimeError(f"QVeris error: {data.get('error_message', 'Unknown error')}")
result = data.get("result")
if result is None:
raise RuntimeError("API response is missing the 'result' field.")
return result
# Usage
result = call_tool(
tool_id="<tool_id selected in Phase 1>",
search_id="<search_id from Phase 1>",
params={"city": "London", "units": "metric"},
)
print(result) # {"data": {"temperature": 15.5, "humidity": 72}}Base URL: https://qveris.ai/api/v1 by default. Set QVERIS_BASE_URL to the active deployment's API root when an explicit override is required.
Authentication: Authorization: Bearer YOUR_API_KEY
POST /tools/execute?tool_id={tool_id}
| Field | Type | Description |
|---|---|---|
search_id | string | ID returned by discover |
session_id | string | Optional session identifier |
parameters | object | Tool-specific input parameters |
max_response_size | number | Max response bytes (default 20480) |
Response Fields
| Field | Type | Description |
|---|---|---|
execution_id | string | Unique ID for the execution. |
result | object | Contains the tool's output, typically under a data key. |
success | boolean | true if the call succeeded, false otherwise. |
error_message | string | Details of the error if success is false. |
elapsed_time_ms | number | Execution time in milliseconds. |
© QVerisAI, MIT. Rendered from Markdown: HTML in the file is shown as text, images as links, and headings moved down two levels. Raw file
Just SKILL.md in skills/qveris of QVerisAI/qveris-agent-toolkit.
Open the folder on GitHubat commit c7f1737
QVeris Tool Discovery next to the 5 skills that share the most tags, products or categories with it. Stars are the repository's; “used in” counts other GitHub owners with a copy.
| Skill | Stars | Used in | Tokens | Auto-check | Licence | Repo updated |
|---|---|---|---|---|---|---|
| QVeris Tool Discovery this skillQVerisAI/qveris-agent-toolkit | 262 | — | ~2.2k | Automated safety check: Pass | MIT | |
| MCP Server Builderanthropics/skills | 180k | 63 repos | ~2.3k | Automated safety check: Pass | Apache-2.0 | |
| MCP Server BuildershareAI-lab/learn-claude-code | 78k | 4 repos | ~1.2k | Automated safety check: Pass | MIT | |
| Build MCP Serveranthropics/claude-plugins-official | 38k | 1 repos | ~3k | Automated safety check: Pass | Apache-2.0 | |
| LexGuard MCP Developer GuideSeoNaRu/lexguard-mcp | 131 | — | ~1.1k | Automated safety check: Pass | Custom licence | |
| MCP API Key AuthenticationYourdaylight/stock_datasource | 189 | — | ~1.2k | Automated safety check: Pass | MIT |
anthropics/skills
Guides the design and implementation of Model Context Protocol servers in TypeScript or Python, from tool naming and error messages to evaluation.
shareAI-lab/learn-claude-code
Walks through building MCP servers in Python or TypeScript that expose tools, resources and prompts to Claude, with templates, registration and testing.
anthropics/claude-plugins-official
Entry point for building an MCP server: asks about the use case, picks a deployment model and tool-design pattern, then hands off to more specialized skills.
SeoNaRu/lexguard-mcp
Developer guide for the LexGuard Korean law MCP server: layer rules, adding tools and repositories, JSON-RPC responses, law API handling, answer rules and tests.
Yourdaylight/stock_datasource
Sets up and troubleshoots MCP API key authentication for a stock data service, covering key creation, client configuration and per-tool usage statistics.
Jeffallan/claude-skills
Queries and edits Jira issues and Confluence pages through an MCP server, covering JQL and CQL queries, server setup, authentication and sprint or backlog workflows.
QVerisAI/qveris-agent-toolkit
Finds third-party data and tool providers through the QVeris CLI, inspects their contracts and calls them, with usage tracking, when the agent's own tools fall short.
Works with
Categories
Finds, compares and calls third-party data and tool services through QVeris over MCP, and generates REST code for the ones worth keeping. The agent decides between its connected tools and QVeris by task fit, data quality and freshness, cost, user constraints and call overhead. QVeris is the pick when the environment lacks a capability or live structured data source, when the right provider is not known, when providers should be compared on relevance, schema, quality, latency or cost, when a preferred provider fails and a fallback is needed, or when you ask for it.
QVeris Tool Discovery fits situations like: needing a live data source or tool that the current environment lacks; comparing providers on cost, latency or data quality; falling back to another provider when the preferred one fails; generating REST code for a service found through QVeris.
Run `npx skills add QVerisAI/qveris-agent-toolkit --skill qveris -a claude-code`. Or copy the skill folder (skills/qveris in QVerisAI/qveris-agent-toolkit) into .claude/skills/qveris in your project. Claude Code loads it when a task matches its description.
Run `npx skills add QVerisAI/qveris-agent-toolkit --skill qveris -a codex`. Or copy the skill folder (skills/qveris in QVerisAI/qveris-agent-toolkit) into .agents/skills/qveris in your project. Codex loads it when a task matches its description.
Cursor, Gemini CLI, GitHub Copilot and OpenCode also load SKILL.md folders. With the skills CLI, run `npx skills add QVerisAI/qveris-agent-toolkit --skill qveris -a cursor` (or -a gemini-cli, github-copilot or opencode for the others). To copy it by hand, put the folder in .cursor/skills/qveris, .gemini/skills/qveris, .github/skills/qveris and .opencode/skills/qveris in your project.
Going by SKILL.md and its folder, QVeris Tool Discovery needs credentials named QVERIS_API_KEY and API_KEY. Our summary lists: QVeris available through an MCP connection.
SKILL.md names 1 domain. In commands or code: qveris.ai; the agent is likely to contact it when it follows the instructions. This is read from the text; nothing was executed.
Our automated static check of SKILL.md found no risky patterns, such as piping downloads into a shell, reading credential files or hidden Unicode. It is not a guarantee. Review the folder before installing.
QVeris Tool Discovery is published under the MIT licence (the repository's licence). It allows redistribution, so the full SKILL.md is shown on this page.
About 2.2k tokens (SKILL.md is roughly 8.9k characters). Agents keep only the skill's name and description in context until a task matches; then they load SKILL.md in full.
Skills that share tags, products or a category with QVeris Tool Discovery: MCP Server Builder (anthropics/skills, 180k stars), MCP Server Builder (shareAI-lab/learn-claude-code, 78k stars), Build MCP Server (anthropics/claude-plugins-official, 38k stars) and LexGuard MCP Developer Guide (SeoNaRu/lexguard-mcp, 131 stars). The comparison table on this page puts their stars, adoption, token cost, safety result and licence side by side.
QVerisAI (a GitHub organization) maintains it in QVerisAI/qveris-agent-toolkit, which has 262 GitHub stars. The repository holds 2 skills in this directory. The repository was last updated on October 9, 2026.
Source: QVerisAI/qveris-agent-toolkit on GitHub. Facts on this page come from the repository at the commit we read; the author's words are quoted as theirs.