Toolport
Toolport is a local MCP gateway that acts as a single proxy for all your connected MCP servers, reducing token usage by exposing a small set of meta-tools instead of dumping every server's full tool list into context. It can serve multiple AI clients (Claude, Cursor, Codex, etc.) from one setup.
The four core meta-tools are:
toolport_status: Check gateway status, which servers are enabled, tool counts, and token/cost savings from lazy discovery.toolport_search_tools: Search for tools across all connected MCP servers (email, payments, databases, repos, etc.) using natural language keywords, optionally scoped to a specific server.toolport_call_tool: Invoke any tool discovered via search by passing its exact name and arguments — effectively proxying calls to any downstream server (Stripe, GitHub, Supabase, etc.).toolport_fetch_result: Retrieve paginated/truncated parts of large tool results using a cursor and offset.
Beyond the core tools, Toolport also lets you:
Configure once, share everywhere: Import server configs from various client formats and share them across all AI clients.
Enforce security: Detect tool integrity issues (rug-pulls, poisoning), defend against prompt injection, and require human-in-the-loop approvals for destructive actions.
Apply governance: Toggle individual tools or entire server categories on/off, view an audit log, and scope server access per AI agent.
Manage multiple accounts: Set up separate profiles for work/personal instances of the same service.
Collaborate with teams: Use Toolport Teams for shared, governed MCP server sets across an organization with access control and budget management.
Toolport
Set up your MCP servers once. Use them in every AI client.
Toolport is a local gateway for MCP, the protocol that gives AI apps access to tools like GitHub, Slack, and databases. Connect your servers once, then share them across Claude, Cursor, Codex, VS Code, and other clients.
Download · Website & demo · Discord

Why Toolport?
Less context overhead. Agents search for tools when they need them instead of loading every tool definition up front. See the benchmarks.
One setup for every client. Add and authenticate each server once. Use profiles to choose which servers each client can access.
Keys stay local. Credentials live in your OS keychain, outside client configs.
Control over tool calls. Disable tools, require approval for destructive calls, and review activity in one place.
Shared agent rules. Write instructions once and apply them to supported clients, with a preview before changes are written.
Related MCP server: Proxima
Get started
Download Toolport for Windows, macOS, or Linux.
Add a server from the catalog, import an existing setup, or paste a server config.
Authenticate the server, then open Clients and connect your AI apps.
Installers and release notes are also on GitHub Releases. For Linux desktop integration, see Toolport on Omarchy.
Documentation
Development
Requires Node.js and stable Rust, plus the platform dependencies described in Contributing.
npm ci
npm run build:gateway
npm run tauri devSee Contributing for testing and build instructions.
Toolport Teams
Share server configuration and policies across a team while each member keeps their own credentials. Hosted and self-hosted options.
License
The desktop app and gateway are MIT licensed.
Available Tools
4 toolstoolport_call_toolA
Invoke a tool discovered via toolport_search_tools. Pass the tool's exact name (as returned by the search) and put ALL of that tool's parameters INSIDE the arguments object (matching its input schema) - not at the top level next to name. Never invent or guess an identifier (teamId, accountId, projectId, etc.): if a required value isn't known, first call a list or get tool on the SAME server to obtain it, then call this with the real value.
| Name | Required | Description | Default |
|---|---|---|---|
| name | Yes | Exact tool name from toolport_search_tools. | |
| arguments | No | Arguments for the tool, per its input schema. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations provided, so description carries full burden. It describes invocation but doesn't clarify side effects (read-only vs write), return value, or error behavior. Adequate but lacks depth for a call tool.
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?
Three sentences, no fluff, purpose first, then structural detail, then caution. Efficient and front-loaded.
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 simple parameters and no output schema, the description covers usage and pitfalls. However, it omits return value (implied by sibling tools) could be slightly more explicit.
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 covers 100% of parameters, but description adds value by explaining the nesting of arguments and giving context about not inventing identifiers, which helps agent avoid common mistakes.
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 it invokes a tool discovered via toolport_search_tools, with specific verb 'Invoke' and resource 'tool'. It distinguishes from sibling tools (toolport_search_tools, toolport_fetch_result, toolport_status) by its unique action.
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?
Explicitly says when to use (after searching), how to structure arguments (inside `arguments` object), and what not to do (never invent identifiers). Provides fallback guidance to call list/get tools if needed.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
toolport_fetch_resultA
Read more of a large tool result that Toolport truncated. When a result is too big for context, Toolport returns the head plus a cursor in a [Toolport shaped this result] marker; call this with that cursor and the offset shown in the marker to page through the rest. Nothing was lost.
| Name | Required | Description | Default |
|---|---|---|---|
| cursor | Yes | The cursor from the marker. | |
| offset | Yes | Character offset to read from (shown in the marker). |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries the full burden. It discloses that the tool paginates through a truncated result, that nothing is lost, and how the marker works. Could mention behavior for invalid cursors, but overall transparent.
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?
Three sentences, front-loaded with purpose, then usage, then reassurance. No unnecessary words. Efficient and well-structured.
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 output schema, the description doesn't detail return format but implies it returns the next chunk. It covers the trigger and parameters adequately. Could specify what to expect on success or failure, but mostly 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% for both parameters, with descriptions already defining cursor and offset. The description adds context that the offset is shown in the marker, but this is minor. Baseline 3 is appropriate as the description adds marginal value over the schema.
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 tool reads more of a large tool result that was truncated, using a cursor and offset. It distinguishes itself from sibling tools like toolport_call_tool (calls a tool) and toolport_search_tools (searches tools).
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 explicitly explains when to use: when a result is too big and a marker is returned. It details the parameters (cursor and offset from the marker) and reassures that nothing was lost. No explicit exclusion of alternatives, but the context makes it clear.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
toolport_search_toolsA
Your single gateway to every connected MCP server and ALL their tools. Try this FIRST for ANY external action or data the user asks for - sending or listing email, deployments, payments, databases, repos, issues, files, web search, etc. Do NOT reach for an unrelated tool or tell the user a capability is unavailable until you have searched here; if the service is connected, its tool is here. Returns matching tools with their exact name, description, and input schema; call one with toolport_call_tool. Once a result matches what you need, call it - do NOT keep searching for a better one (the first result includes its full schema and is ready to call). Pass server (a name/prefix like "resend") to scope to one server, and pass an EMPTY query with server to list ALL of that server's tools. If the result says more tools matched than were shown, narrow with server or raise limit before concluding a capability is missing - many servers expose a generic API bridge (a single write/create tool), so search by capability, not just an exact operation name. toolport_status lists every server prefix and its tool count. Large input schemas may be omitted from broad results (flagged schemaOmitted) to keep responses small - search a tool's exact name to get its full schema.
| Name | Required | Description | Default |
|---|---|---|---|
| limit | No | Max results (default 25, up to 200). | |
| query | Yes | Keywords describing the capability you need (e.g. "list emails", "create payment", "recent deployments"). Empty lists tools (use with `server`). | |
| server | No | Optional: limit to this server, by name/prefix (e.g. "resend"). |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations provided, so description carries full burden. Discloses that large input schemas may be omitted (schemaOmitted) and suggests searching exact name for full schema. Also notes that many servers expose generic API bridges. Does not mention any side effects or auth needs, which is acceptable for a read-only search tool.
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?
Description is lengthy but every sentence provides valuable guidance. It front-loads the main purpose and then offers detailed strategies. Could be slightly more concise, but efficient given the complexity.
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 the tool's role (search across multiple servers) and lack of output schema, the description is remarkably complete. Covers scoping, handling incomplete results, schema omission, and integration with sibling tools. Leaves no major gaps for an AI agent to misuse.
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% but description adds extra: explains empty query with server to list all tools, gives usage examples ('list emails'), and clarifies limit range (default 25, up to 200). Adds value beyond schema descriptions.
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 it is the gateway to all MCP servers' tools, using verbs like 'search' and 'list'. It distinguishes itself from siblings (toolport_call_tool, toolport_status) by specifying its role as the discovery entry point.
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?
Provides explicit directives: use this FIRST for any external action, do not assume capability missing until searched, once matched call it without further searching. Gives strategies like using server scope, empty query, or raising limit. Mentions sibling toolport_status for listing servers.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
toolport_statusA
Report Toolport's status: the MCP servers enabled in the active profile, each server's tool count, and how many tokens (and dollars) lazy discovery has saved you so far.
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description bears the full burden. It indicates a non-destructive read operation, but does not disclose any potential side effects, caching, rate limits, or performance characteristics. For a simple report tool, this is minimally adequate.
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 a single, well-structured sentence that front-loads the core purpose and efficiently enumerates the report contents with no wasted words.
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 the tool's simplicity (no parameters, no output schema), the description fully covers what the tool does and returns. It is complete for the context.
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?
The tool has zero parameters and the input schema is fully documented (100% schema description coverage). The description adds no parameter details, but none are needed. Baseline 4 for 0-parameter tools applies.
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 tool reports Toolport's status, listing specific data points (MCP servers, tool counts, token/dollar savings). This distinguishes it from sibling tools (search, call, fetch) which have different purposes.
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 implies usage for obtaining status information, but it does not explicitly state when to use it versus alternatives or provide any exclusion criteria. It lacks clear usage guidance beyond the implicit context.
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. Dates show when Glama detected each change.
1 tool update
v1.10.0- Added
toolport_status
1 tool update
v1.9.6- Removed
toolport_status
4 tool updates
v1.5.0- First observed
toolport_call_tool - First observed
toolport_fetch_result - First observed
toolport_search_tools - First observed
toolport_status
TDQS
Each tool has a distinct, non-overlapping purpose: searching for tools, calling a tool, fetching truncated results, and reporting status. There is zero ambiguity in their roles.
All tool names follow the consistent pattern `toolport_verb_noun` (call_tool, fetch_result, search_tools, status) using snake_case, making them predictable and easy to understand.
Four tools is exactly right for a meta-server acting as a gateway: discovery, invocation, pagination handling, and status reporting. No tool feels excessive or missing.
The tool set covers the full lifecycle of working with external tools: search to discover, call to invoke, fetch to page through large results, and status to monitor. There are no apparent gaps for its stated purpose.
Maintenance
Resources
Unclaimed servers have limited discoverability.
Looking for Admin?
If you are the server author, to access and configure the admin panel.
Related MCP Connectors
Zero-setup MCP gateway securely connecting AI to your tools with authentication and workflows
- QuallaaOAuthcom.quallaa
Talk to your public-facing AI from any MCP client — Claude, ChatGPT, Cursor, Cline, Windsurf.
Real-time chat for AI agents. Claude Code, Cursor, Cline and Codex join channels over MCP.
Real-time chat hub for AI agents — Claude Code, Cursor, Cline, Codex over MCP or REST.
Related MCP Servers
- AlicenseNot gradedqualityDmaintenanceMCP of MCPs. Automatic discovery and configure MCP servers on your local machine. Integration with Claude and Cursor.53Apache 2.0
- FlicenseNot gradedqualityAmaintenanceA local AI gateway that connects multiple AI providers (ChatGPT, Claude, Gemini, Perplexity) to your development environment via MCP tools, enabling coding, search, analysis, and more without API keys.181,170-
- AlicenseNot gradedqualityCmaintenanceA local MCP server that connects AI coding agents (Claude Code, Codex, Cursor, etc.) on the same machine via a shared message bus, enabling them to chat, delegate tasks, and collaborate privately without cloud or internet.3017MIT
- AlicenseAqualityAmaintenanceCentralized encrypted gateway that routes requests to 11+ LLM providers (API keys and CLI subscriptions) through a single OpenAI-compatible endpoint, with MCP tools for vault operations, code search, and shared state.30191MIT
Latest Blog Posts
- Who's Calling? MCP Hosts Are an Identity Blind Spot (And the Spec Knows It)By Om-Shree-0709 on .mcpAgent IdentityOAuth 2.1
- Your AI Chatbot Just Exposed Your CEO's Salary to an InternBy Om-Shree-0709 on .Agent IdentityMCP SecurityOAuth Delegation
- Why MCP Servers Need Execution Sandboxing (And Why Your Current Stack Isn't Enough)By Om-Shree-0709 on .Agentic AiPrompt InjectionWebAssembly
MCP directory API
We provide all the information about MCP servers via our MCP API.
curl -X GET 'https://glama.ai/api/mcp/v1/servers/btsouth/toolport'
If you have feedback or need assistance with the MCP directory API, please join our Discord server