ToolDock
Click on "Install 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., "@ToolDockcalculate shipping to Delhi weight 2.5 express"
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.
ToolDock
Write a typed Python function once. ToolDock exposes it as a CLI command, a REST endpoint, and an MCP tool without adding transport code to the function.
typed function -> registry -> validation -> CLI / REST / MCPInstall
The distribution is named tooldock-ai; the Python import is tooldock.
pip install tooldock-aiUntil the first PyPI release, install directly from GitHub:
pip install "tooldock-ai @ git+https://github.com/jaytyagiwithai-wq/tooldock_1.0.git"ToolDock requires Python 3.11 or newer.
Related MCP server: py2mcp
One function, three interfaces
Define the business function in tools.py:
from tooldock import ToolDock
dock = ToolDock()
@dock.tool
def calculate_shipping(
city: str,
weight: float,
express: bool = False,
) -> float:
"""Calculate a shipping quote."""
rate = 20 if express else 10
return weight * rateCLI
# cli_app.py
from tooldock import build_cli
from tools import dock
app = build_cli(dock)
if __name__ == "__main__":
app()python cli_app.py calculate-shipping Delhi 2.5 --expressRequired parameters become arguments, defaults become options, booleans become flags, and repeated values map to typed lists.
REST
# api_app.py
from tooldock import build_api
from tools import dock
app = build_api(dock, title="Shipping Tools")uvicorn api_app:app --reload
curl -X POST http://127.0.0.1:8000/tools/calculate-shipping \
-H "Content-Type: application/json" \
-d '{"city":"Delhi","weight":2.5,"express":true}'FastAPI publishes OpenAPI at /openapi.json and interactive docs at /docs.
MCP
# mcp_app.py
from tooldock import build_mcp, run_mcp
from tools import dock
server = build_mcp(dock, name="Shipping Tools")
if __name__ == "__main__":
run_mcp(server)Run python mcp_app.py from an MCP client configuration. The server uses stdio,
so it waits silently for JSON-RPC requests rather than presenting an interactive
prompt. See the MCP guide for client configuration and debugging.
What ToolDock guarantees
Registration is explicit: only functions decorated with
@dock.toolare exposed.Type hints and defaults produce one shared Pydantic input contract.
Inputs are validated before the function runs.
Return values are checked strictly against the return annotation.
Sync and async functions share the same public execution API.
CLI, REST, and MCP translate the same domain errors for their environments.
Adapters take a startup snapshot; register every tool before building them.
Unsupported signatures fail during registration. Positional-only parameters,
*args, **kwargs, missing parameter annotations, and missing return
annotations are rejected because they cannot produce a dependable cross-
interface contract.
Error boundaries
Failure | CLI | REST | MCP |
Invalid input | Message, exit 2 | HTTP 422 | Correctable tool error |
Invalid function output | Message, exit 1 | Safe HTTP 500 | Safe tool error |
Function exception | Message, exit 1 | Safe HTTP 500 | Safe tool error |
REST and MCP responses do not expose runtime exception text or invalid returned values. Applications should log chained exceptions to a protected diagnostic sink.
Documentation
Development
git clone https://github.com/jaytyagiwithai-wq/tooldock_1.0.git
cd tooldock_1.0
uv sync --group dev
uv run pytest -q
uv run ruff check src tests examples
uv run ruff format --check src tests examples
uv build
uv run twine check dist/*The test suite includes a real MCP child-process round trip in addition to unit and in-memory protocol tests.
License
ToolDock is available under the MIT License.
This server cannot be installed
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 Servers
- Alicense-qualityCmaintenanceEnables building agent-ready APIs that expose tools as both HTTP and MCP endpoints from a single server definition, with automatic OpenAPI, discovery docs, and interactive API reference.5Apache 2.0
- Alicense-qualityBmaintenanceCreate MCP servers from Python functions instantly, with support for input transformations and store-based CRUD operations.MIT
- Alicense-qualityDmaintenanceTurns any ML model into an MCP tool with auto-inferred schemas, input/output validation, and structured error handling.1MIT
- Alicense-qualityCmaintenanceTurn your typed TypeScript functions into an MCP server — tool, resource, and prompt schemas inferred from your types and JSDoc. No schema library, no decorators, no boilerplate.12MIT
Related MCP Connectors
Search, document and execute authenticated API calls across 500+ apps via one MCP server
34 production API tools over one hosted MCP endpoint.
Personal assistant MCP server with search, execute, packages, jobs, secrets, and integrations.
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/jaytyagiwithai-wq/tooldock_1.0'
If you have feedback or need assistance with the MCP directory API, please join our Discord server