The Model Context Protocol (MCP) is a new, standardized way to provide context and tools to your LLMs, and FlashMCP makes building MCP servers and clients simple and intuitive. Create tools, expose resources, define prompts, and more with clean, Pythonic code:

from FlashMCP import FlashMCP

mcp = FlashMCP("Demo πŸš€")

@mcp.tool()
def add(a: int, b: int) -> int:
    """Add two numbers"""
    return a + b

if __name__ == "__main__":
    mcp.run()

FlashMCP and the Official MCP SDK

Recognize the FlashMCP name? You might have seen the version that was contributed to the official MCP Python SDK, which was based on FlashMCP 1.0.

Welcome to FlashMCP This is the actively developed successor, and it significantly expands on 1.0 by introducing powerful client capabilities, server proxying & composition, OpenAPI/FastAPI integration, and more advanced features.

FlashMCP is the recommended path for building modern, powerful MCP applications. Ready to get started? Follow the installation instructions, which include specific steps for upgrading.

What is MCP?

The Model Context Protocol lets you build servers that expose data and functionality to LLM applications in a secure, standardized way. It is often described as β€œthe USB-C port for AI”, providing a uniform way to connect LLMs to resources they can use. It may be easier to think of it as an API, but specifically designed for LLM interactions. MCP servers can:

  • Expose data through Resources (think of these sort of like GET endpoints; they are used to load information into the LLM’s context)
  • Provide functionality through Tools (sort of like POST endpoints; they are used to execute code or otherwise produce a side effect)
  • Define interaction patterns through Prompts (reusable templates for LLM interactions)
  • And more!

There is a low-level Python SDK available for implementing the protocol directly, but FlashMCP aims to make that easier by providing a high-level, Pythonic interface.

Why FlashMCP?

The MCP protocol is powerful but implementing it involves a lot of boilerplate - server setup, protocol handlers, content types, error management. FlashMCP handles all the complex protocol details and server management, so you can focus on building great tools. It’s designed to be high-level and Pythonic; in most cases, decorating a function is all you need.

FlashMCP aims to be:

πŸš€ Fast: High-level interface means less code and faster development

πŸ€ Simple: Build MCP servers with minimal boilerplate

🐍 Pythonic: Feels natural to Python developers

πŸ” Complete: FlashMCP aims to provide a full implementation of the core MCP specification

llms.txt

This documentation is also available in llms.txt format, which is a simple markdown standard that LLMs can consume easily.

There are two ways to access the LLM-friendly documentation:

  • llms.txt is essentially a sitemap, listing all the pages in the documentation.
  • llms-full.txt contains the entire documentation. Note this may exceed the context window of your LLM.