Overview
What is MCP Tool Server?
MCP Tool Server is an asynchronous Python server that exposes Python functions as "tools" over stdio or SSE transports using the FastMCP framework. It is intended for developers who want to make custom Python functions callable via the Model Context Protocol.
How to use MCP Tool Server?
Run python mcp_server.py with optional positional paths to tool files or directories, plus flags like --log FILENAME, --transport {stdio,sse}, and --port PORT. With no arguments, only the built-in echo and health tools are available.
Key features of MCP Tool Server
- Supports stdio and SSE transports
- Built-in
echoandhealthtools - Dynamically loads custom tools from Python files or directories
- Configurable console and file-based logging
- Asynchronous design for concurrent operations
Use cases of MCP Tool Server
- Expose a calculator function as a callable tool for an MCP client
- Serve a collection of data‑processing utilities from a folder of Python files
- Enable web clients to subscribe to tool outputs via SSE
- Debug tool behavior with verbose file logging
FAQ from MCP Tool Server
What transports does MCP Tool Server support?
It supports stdio (standard input/output) and SSE (Server-Sent Events, listens on http://<host>:<port>/sse). The default transport is stdio.
How do I add custom tools?
Provide paths to Python files or directories containing Python files as positional arguments. Each file must define exactly one function, which becomes a tool. Files starting with _ are ignored.
What are the built-in tools?
The built-in tools are echo (returns its parameters) and health (returns "ready").
How do I enable detailed logging?
Use the --log FILENAME option. This writes DEBUG‑level logs for both the server and the MCP SDK to the specified file, while INFO‑level messages still appear on the console.
How do I shut down the server gracefully?
Press Ctrl+C to shut down the server.