chuk
MCP server from IBM/chuk-mcp-server
claude mcp add --transport stdio ibm-chuk-mcp-server uvx chuk-mcp-server
How to use
ChukMCPServer is a Python-based MCP server framework designed for fast, decorator-driven construction of Model Context Protocol servers. With Chuk, you decorate Python functions as tools, resources, prompts, or authentication guards, and then expose them via a minimal run() call. The server automatically handles typing-based schema generation, OpenAPI exposure, and transport options (STDIO and optional HTTP streams). You can build production-ready MCP services quickly, and leverage Cloud deployment detection to run on GCP, AWS, Azure, or Vercel without changing your code.
Once your server is running, you can invoke tools through the defined Python APIs or use Claude Desktop integrations to access your tools in Claude.ai. The framework also includes features like OAuth 2.1 built-in authentication, structured outputs, and automated OpenAPI documentation at /openapi.json, making it straightforward to integrate with clients and UI tools.
Examples include creating simple tools like add(a: int, b: int) -> int, exposing resources to fetch configuration, and building multi-tool compositions that can combine local Python modules and remote MCP servers via STDIO or HTTP transports.
How to install
Prerequisites:
- Python 3.9+ installed on your system
- Router/terminal access to install Python packages
Installation steps:
-
Create a virtual environment (optional but recommended): python -m venv venv source venv/bin/activate # On Windows use: venv\Scripts\activate
-
Install the Chuk MCP Server package (basic): pip install chuk-mcp-server
-
(Optional) Install extra features, e.g., Google Drive OAuth support: pip install chuk-mcp-server[google_drive]
-
(Optional) If you plan to scaffold with uvx and run via CLI, ensure uvx is available: pip install uvx # If you don’t already have uvx in your toolchain
-
Verify installation by running a minimal hello server (example from README): python -c "from chuk_mcp_server import tool, run; @tool def greet(name: str) -> str: return f'Hello {name}!'; run()"
Additional notes
Tips and common issues:
- If you enable OAuth protections with @requires_auth, ensure you configure your OAuth provider and tokens as described in the OAuth docs.
- When using Claude Desktop integration, you can auto-register servers by passing the appropriate flags during scaffolding (see the README examples).
- For HTTP transport, you can enable an HTTP server by following the HTTP mode examples in the docs (the framework supports STDIO and HTTP streams).
- OpenAPI documentation is auto-generated at /openapi.json; you can point your clients to this endpoint for client generation.
- If you encounter transport errors, verify your environment path and that the uvx or corresponding launcher is correctly installed and accessible in your shell.
Related MCP Servers
generative-ui-playground
Interact with all three types of generative UI, all in one interface
freepik
The Freepik enables popular agent Model Context Protocol (MCP) to integrate with Freepik APIs through function calling.
language
MCP server from alexwohletz/language-server-mcp
html-to-markdown
MCP server for converting HTML to Markdown using Turndown.js. Fetch web pages and convert them to clean, formatted Markdown.
mcp-doc-forge
MCP server that provides doc forge capabilities
mcp -client-spring-ai
MCP server from mohamedYoussfi/mcp-server-client-spring-ai