FastMCP SDKs

Create powerful Model Context Protocol servers that expose data and functionality to AI applications. FastMCP provides a "USB-C port for AI" with standardized resource and tool interactions.

Developer Tools for MCP

FastMCP eliminates boilerplate code and provides intuitive APIs for building MCP servers. Create tools, define resources, and generate prompts with built-in authentication and validation.

Pythonic & TypeScript-First

High-level, intuitive interfaces designed for developer productivity with minimal boilerplate.

Production Ready

Built-in authentication, session management, and support for multiple transport protocols (STDIO, HTTP, SSE).

Comprehensive Ecosystem

Full ecosystem with OpenAPI generation, server composition, testing tools, and CLI support.

FastMCP Python

Python framework for building MCP servers with decorators and async support

Tools, resources, and prompts with @mcp.tool decorators
Multiple transport protocols (STDIO, HTTP, SSE)
Authentication and OpenAPI generation
Server composition and comprehensive testing

FastMCP TypeScript

TypeScript framework built on the official SDK with zero boilerplate

Built on official MCP SDK with Zod validation
Authentication, session management, and CORS
Content handling (text, images, audio)
CLI for testing and debugging servers

Getting Started

Both SDKs provide the same powerful features with language-specific optimizations. Get started in minutes with these simple examples.

Python Quick Start

# Install with uv (recommended)
uv pip install fastmcp

# Create your first server
from fastmcp import FastMCP

mcp = FastMCP("Demo 🚀")

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

if __name__ == "__main__":
    mcp.run()
View Python Documentation →

TypeScript Quick Start

// Install the SDK
npm install fastmcp

// Create your first server
import { FastMCP } from "fastmcp"
import { z } from "zod"

const server = new FastMCP({
  name: "My Server",
  version: "1.0.0"
})

server.addTool({
  name: "add",
  description: "Add two numbers",
  parameters: z.object({
    a: z.number(), b: z.number()
  }),
  execute: async (args) => String(args.a + args.b)
})

server.start({ transportType: "stdio" })
View TypeScript Documentation →

Join the Community

Get help, share your projects, and contribute to the FastMCP ecosystem. We're here to support you on your MCP journey.