Overview
What is MCPLite?
MCPLite is a lightweight, pythonic implementation of the Model Context Protocol (MCP) for integrating external tools and data sources into LLM applications. It provides a decorator-based API inspired by FastAPI to turn any Python function into an MCP tool, resource, or prompt. It is designed for Python developers building MCP servers or connecting LLMs to external capabilities.
How to use MCPLite?
Install core dependencies (pydantic, rich) and optional ones for web functionality. Create an MCP server by instantiating MCPLite(transport="stdio") and decorating functions with @mcp.tool, @mcp.resource, or @mcp.prompt. Run the server with mcp.run(). For client orchestration, use the Host class; for interactive chat, use MCPChat. Built-in servers (e.g., fetch, obsidian) can be started via python -m MCPLite.servers.<name>.
Key features of MCPLite
- Decorator-based API for tools, resources, and prompts
- Multiple transport modes: stdio, direct, and SSE
- Built-in servers for web fetching and Obsidian vaults
- Host orchestration engine for multi-server coordination
- Interactive chat interface with syntax highlighting and tool execution
- Pluggable transport layer with configurable logging
Use cases of MCPLite
- Building custom MCP servers to expose Python functions as LLM tools
- Connecting LLMs to web searches, filesystem operations, or note-taking apps
- Orchestrating multiple MCP servers for complex agent workflows
- Providing interactive, tool-augmented chat experiences
FAQ from MCPLite
What dependencies does MCPLite require?
Core dependencies are pydantic and rich. For web functionality, install requests, beautifulsoup4, and markdownify. The chain-of-thought package is recommended for stdio transport.
What transport options are available?
MCPLite supports stdio (production), direct (development), and SSE (web) transports. You specify the transport when creating the server: MCPLite(transport="stdio").
How do I configure the Obsidian server?
Set the OBSIDIAN_PATH environment variable to your vault’s path. The server then runs sandboxed filesystem operations, searches, and metadata extraction within that vault.
Can MCPLite be extended with custom servers?
Yes. Create a new Python file, instantiate MCPLite, and use the decorator pattern (@mcp.tool, etc.) to add tools, resources, or prompts. The server can then be run or imported.
Where does MCPLite log information?
Logging is configurable via the MCPLITE_LOG_LEVEL environment variable (e.g., DEBUG). By default, it logs at the configured level to standard output.