toad-mcp-server
Click on "Deploy Server".
Wait a few minutes for the server to deploy. Once ready, it will show a "Started" state.
In the chat, type
@followed by the MCP server name and your instructions, e.g., "@toad-mcp-serversearch for documents about authentication"
That's it! The server will respond to your query, and you can continue using it as needed.
Here is a step-by-step guide with screenshots.
toad-mcp-server
š MCP server exposing portfolio AI tools via Model Context Protocol. Connect to Claude Desktop and call Semantic Search, Eval Framework, and Prompt Management tools directly from chat.
šļø Architecture
āāāāāāāāāāāāāāāāāāāāāāā stdio / HTTP āāāāāāāāāāāāāāāāāāāāāāāāāāāā
ā Claude Desktop āāāāāāāāāāāāāāāāāā-āāāŗā toad-mcp-server ā
ā (MCP Client) ā ā ā
āāāāāāāāāāāāāāāāāāāāāāā ā āāāāāāāāāāāāāāāāāāāāāā ā
ā ā toad_search_docs āāāā¼āāāŗ Semantic Search API
ā āāāāāāāāāāāāāāāāāāāāā⤠ā
ā ā toad_run_eval āāāā¼āāāŗ Eval Framework API
ā āāāāāāāāāāāāāāāāāāāāā⤠ā
ā ā toad_system_status āāāā¼āāāŗ Health checks
ā āāāāāāāāāāāāāāāā-āāāā⤠ā
ā ā toad_list_prompts ā ā
ā āāāāāāāāāāāāāāāāāāāāā⤠ā
ā ā toad_get_prompt ā ā
ā āāāāāāāāāāāāāāāāāāāāāā ā
āāāāāāāāāāāāāāāāāāāāāāāāāāāāRelated MCP server: claude-rag-mcp
š ļø Tools
Tool | Description | Read-only |
| Semantic search over documents via natural language query | Yes |
| Run eval suite against a prompt variant, returns scores | No |
| Health check all portfolio services (latency, status) | Yes |
| List prompts with pagination and tag filtering | Yes |
| Get prompt by name with version, template, score history | Yes |
All tools support response_format: "markdown" | "json" where applicable.
š¦ Resources
URI | Description |
| Health status of all services (JSON) |
| Get prompt by name with full metadata (JSON) |
š Quick Start
# Install
npm install
# Build
npm run build
# Run (stdio ā for Claude Desktop)
npm start
# Run (HTTP ā for remote/multi-client access)
TRANSPORT=http npm start
# Dev mode
npm run devš„ļø Claude Desktop Setup
Build the server:
npm run buildAdd to your Claude Desktop config (
~/Library/Application Support/Claude/claude_desktop_config.jsonon macOS):{ "mcpServers": { "toad-mcp-server": { "command": "node", "args": ["dist/index.js"], "cwd": "/absolute/path/to/toad-mcp-server", "env": { "SEMANTIC_SEARCH_URL": "http://localhost:3001", "EVAL_FRAMEWORK_URL": "http://localhost:3002" } } } }Restart Claude Desktop ā tools appear automatically.
š Testing with MCP Inspector
npx @modelcontextprotocol/inspector node dist/index.jsOpens a web UI to test each tool interactively.
āļø Environment Variables
Variable | Default | Description |
|
| Semantic Search Engine endpoint |
|
| Eval Framework endpoint |
|
| Transport mode: |
|
| HTTP transport port |
|
| HTTP transport bind address |
š Scripts
Script | Description |
| Compile TypeScript to |
| Run with tsx (hot reload) |
| Run compiled server |
| ESLint check |
| Prettier format |
š§± Tech Stack
TypeScript (NodeNext, strict)
@modelcontextprotocol/sdk ā MCP server SDK
Zod v4 ā input validation
ESLint + Prettier + Husky ā code quality
GitHub Actions ā CI (lint ā format ā build)
š License
ISC
Available Tools
5 toolstoad_get_promptARead-onlyIdempotent
Get a specific prompt by name with full metadata including version, score history, and template content.
| Name | Required | Description | Default |
|---|---|---|---|
| name | Yes | Prompt name to retrieve | |
| response_format | No | Response format: markdown for human reading, json for machine processing | markdown |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint, idempotentHint, and destructiveHint=false, so the agent knows this is a safe read operation. The description adds useful behavioral context by listing exactly what metadata is returned (version, score history, template content), going beyond the structured annotations.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
A single sentence that front-loads the action and object, then specifies the metadata scope. Every word contributes value; no filler or redundancy.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
The tool is a simple get-by-name read operation with an optional response format. The description covers the core return content, which partially compensates for the absence of an output schema. Minor omissions like exact-name matching or not-found behavior are not critical for this tool's simplicity and are outweighed by annotation-covered safety.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100%, so both name and response_format are fully documented in the schema. The description reinforces that the name parameter is the prompt identifier, but does not add material detail beyond what the schema already provides. Baseline 3 is appropriate.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the verb 'Get', the resource 'specific prompt by name', and the key content returned: 'full metadata including version, score history, and template content'. It implicitly distinguishes itself from toad_list_prompts by emphasizing retrieval of one named prompt rather than enumeration.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The phrase 'specific prompt by name' gives clear context that this tool is for targeted retrieval when the prompt name is known. It does not explicitly name alternatives like toad_list_prompts or toad_search_documents, but the intended use case is reasonably clear.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
toad_list_promptsARead-onlyIdempotent
List available prompts from the Prompt Registry. Supports pagination and optional filtering by tag.
| Name | Required | Description | Default |
|---|---|---|---|
| tag | No | Filter prompts by tag | |
| limit | No | Maximum number of prompts to return | |
| offset | No | Number of prompts to skip | |
| response_format | No | Response format: markdown for human reading, json for machine processing | markdown |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=true, idempotentHint=true, and destructiveHint=false, so the safety profile is covered. The description adds the registry source and pagination/filtering capability but doesn't describe return format or output structure. This is adequate given the annotation coverage, though not richer than necessary.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two short sentences with no filler. The main action is stated first, followed by capability details. Every word earns its place.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a simple read-only list operation, the description plus the fully documented schema and safety annotations are sufficient. No output schema is present, but 'list' clearly implies a list of prompts. There are no missing details an agent would need to call this tool correctly.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so the schema already documents all four parameters. The description adds a high-level mention of 'pagination and optional filtering by tag' but no new details beyond what the schema provides. Baseline 3 is appropriate.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description states a specific verb ('List') and resource ('prompts from the Prompt Registry'), which clearly distinguishes it from siblings like toad_get_prompt (single prompt) and toad_search_documents (document search). Its scope is immediately understandable.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description gives clear context: use this to list available prompts, with pagination and optional tag filtering. It doesn't explicitly mention when to use a sibling instead, but the 'List' framing and mention of registry make the intended use obvious.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
toad_run_evalAIdempotent
Run an evaluation suite from the Eval Framework. Executes test cases against a prompt variant and returns scores and pass/fail results.
| Name | Required | Description | Default |
|---|---|---|---|
| suite | Yes | Name of the eval suite to run | |
| variant | No | Prompt variant to evaluate | default |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already indicate non-read-only, idempotent, non-destructive behavior. The description adds that it executes test cases and returns scores and pass/fail results, which is useful context. It does not disclose potential side effects such as external model calls, result storage, or runtime cost, but the annotations cover part of this burden.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is two short sentences with no filler. It leads with the primary action, then expands with the execution and output behavior, making it easy to scan.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a simple tool with one required parameter and no output schema, the description covers the essential input and output behavior: it runs test cases and returns scores and pass/fail results. It does not explain error cases or whether results are persisted, but given the annotations and low complexity, it is reasonably complete.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100%, so the schema already fully documents 'suite' and 'variant'. The description loosely mirrors those meanings by mentioning 'evaluation suite' and 'prompt variant', but adds no additional detail about formats, defaults, or value constraints.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description states a specific verb ('Run') and a specific object ('an evaluation suite from the Eval Framework'), then clarifies the action with 'Executes test cases against a prompt variant'. This clearly separates it from the sibling tools, which are about document search, system status, and prompt retrieval.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description makes the main use case obvious: run an eval suite and see pass/fail results. However, it does not explicitly state when to choose this tool over alternatives, nor does it mention prerequisites such as the suite existing or which variant is appropriate.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
toad_search_documentsARead-onlyIdempotent
Search documents using semantic similarity. Connects to the Semantic Search Engine to find relevant documents based on a natural language query.
| Name | Required | Description | Default |
|---|---|---|---|
| limit | No | Maximum number of results to return | |
| query | Yes | Natural language search query |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already cover safety with readOnlyHint=true, idempotentHint=true, and destructiveHint=false. The description adds the useful detail that the tool connects to an external Semantic Search Engine, implying external dependency, but it does not describe result structure, pagination, or other behavioral caveats. This is acceptable but not rich.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two short sentences cover purpose and context without filler. The core action is front-loaded in the first sentence, and the second sentence adds necessary context about the connection to the Semantic Search Engine and natural language queries.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a simple two-parameter, read-only search tool, the description is nearly complete. It states what it searches, how it searches, and what kind of query to provide. The only gap is that there is no output schema and the description does not explicitly describe the return shape, though 'find relevant documents' implies a list of matching documents.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so the baseline is 3. The description adds value by explaining that the query is interpreted semantically and should be a natural language expression, not a keyword syntax. The limit parameter is already fully documented in the schema, so no further compensation is needed.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description uses a specific verb and resource: 'Search documents using semantic similarity.' It clearly differentiates from sibling tools like toad_run_eval, toad_system_status, and prompt-related tools, so an agent can identify this as the document search tool without ambiguity.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description establishes clear usage context: use this tool for semantic similarity search over documents with a natural language query. It does not explicitly list exclusions or alternative tools, but the sibling tools are topically distinct, so no conflicting usage guidance is needed.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
toad_system_statusARead-onlyIdempotent
Check health of all portfolio services: Semantic Search API and Eval Framework. Returns status, latency, and error details for each component.
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnly, idempotent, and non-destructive behavior. The description adds value by disclosing the output scope (status, latency, error details) and the fact that coverage spans both services, which is not derivable from annotations alone.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
One sentence with no filler. It front-loads the verb and resource, then specifies components and return fields. Every element contributes to understanding.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given no parameters, rich annotations, and the simple nature of a status check, the description covers the essential input, output, and scope. The absence of an output schema is mitigated by explicitly mentioning status, latency, and error details.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
This tool has zero parameters, so there is nothing to document. The 100% schema coverage is trivially satisfied, and the baseline of 4 applies as no param semantics are needed.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
Description states a clear verb ('Check health') and specific resource ('all portfolio services') with named components (Semantic Search API, Eval Framework). It naturally differentiates from sibling tools focused on searching, running evals, or managing prompts.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The tool's purpose as a health check is immediately clear, providing ample context for when an agent would invoke it. It does not explicitly mention alternatives or exclusion criteria, but siblings are clearly distinct operations, so the absence of direct comparison is acceptable.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
Tool Schema Changelog
Recent tool additions, removals, and schema changes observed during successful MCP inspections.
5 tool updates
v1.0.0- First observed
toad_get_prompt - First observed
toad_list_prompts - First observed
toad_run_eval - First observed
toad_search_documents - First observed
toad_system_status
TDQS
Scored across 5 tools
Each tool targets a distinct capability: semantic search, eval execution, system health, prompt listing, and prompt detail retrieval. The relationship between list_prompts and get_prompt is complementary rather than ambiguous.
All tools follow the same `toad_` prefix with a clear verb_noun pattern: search_documents, run_eval, system_status, list_prompts, get_prompt. This makes the toolset highly predictable.
Five tools is well-scoped for a specialized server covering search, evaluation, system health, and prompt registry access. Each tool earns its place without redundant or unnecessary entries.
The server supports read/search/run workflows, but lacks prompt registry write operations (create/update/delete) and any way to list available eval suites. Agents may encounter dead ends when trying to discover eval inputs or manage prompt lifecycle.
Related MCP Connectors
MCP server unifying ERPs, CRMs, APIs and knowledge base for Claude, ChatGPT and Gemini.
MCP-Native LLM Orchestration Agent
MCP server for VC pitch-deck scoring, thesis-fit matching, and deal-flow management.
MCP server giving Claude AI access to 22+ NYC public-record databases for real estate due diligence
Related MCP Servers
- AlicenseNot gradedqualityDmaintenanceAI-powered MCP server that enables Claude and other LLMs to interact directly with construction documents, drawings, and specifications through advanced RAG and hybrid search capabilities.9MIT
- AlicenseNot gradedqualityCmaintenanceMCP server providing RAG context and failure capture for Claude Code, enabling semantic search across project knowledge and storing/analyzing failures.1MIT
- AlicenseBqualityDmaintenanceEnables AI-driven semantic code search via natural language queries, integrating with MCP clients like Claude Desktop to retrieve relevant code context from any codebase.1MIT
- AlicenseNot gradedqualityBmaintenanceAn MCP server that exposes an AI project portfolio as queryable tools, allowing users to ask about projects, search by technology, or get details via natural language.1MIT