Desenvolvimento de Servidores FastMCP 3.0
Referência completa para construir servidores MCP (Model Context Protocol) prontos para produção com FastMCP 3.0 - o framework Pythônico rápido para conectar LLMs a ferramentas e dados.
Quando usar esta skill
Use FastMCP Server quando:
- Criar um novo servidor MCP em Python
- Adicionar tools, resources ou prompts a um servidor MCP
- Implementar autenticação (OAuth, OIDC, verificação de token)
- Configurar middleware para logging, rate limiting ou autorização
- Configurar providers (local, filesystem, skills, customizado)
- Construir servidores MCP para produção com telemetria e storage
- Fazer upgrade de FastMCP 2.x para 3.0
Áreas-chave cobertas:
- Tools & Resources (CORE): Decoradores, validação, tipos de retorno, templates
- Context & DI (CORE): Contexto MCP, injeção de dependência, background tasks
- Autenticação (SECURITY): OAuth, OIDC, verificação de token, padrões de proxy
- Autorização (SECURITY): Controle de acesso baseado em escopo e role
- Middleware (ADVANCED): Pipeline de request/response, middleware integrado
- Providers (ADVANCED): Local, filesystem, skills e providers customizados
- Features (ADVANCED): Paginação, sampling, storage, OpenTelemetry, versionamento
Referência rápida
Padrões principais
Criar um servidor com tools:
from fastmcp import FastMCP
mcp = FastMCP("MyServer")
@mcp.tool
def add(a: int, b: int) -> int:
"""Add two numbers"""
return a + b
Criar um resource:
@mcp.resource("data://config")
def get_config() -> dict:
"""Return server configuration"""
return {"version": "1.0", "debug": False}
Criar um template de resource:
@mcp.resource("users://{user_id}/profile")
def get_user_profile(user_id: str) -> dict:
"""Get a user's profile by ID"""
return fetch_user(user_id)
Criar um prompt:
@mcp.prompt
def review_code(code: str, language: str = "python") -> str:
"""Review code for best practices"""
return f"Review this {language} code:\n\n{code}"
Executar o servidor:
if __name__ == "__main__":
mcp.run()
# Or with transport options:
# mcp.run(transport="sse", host="0.0.0.0", port=8000)
Usar context em tools
from fastmcp import FastMCP, Context
mcp = FastMCP("MyServer")
@mcp.tool
def process_data(uri: str, ctx: Context) -> str:
"""Process data with logging and progress"""
ctx.info(f"Processing {uri}")
ctx.report_progress(0, 100)
data = ctx.read_resource(uri)
ctx.report_progress(100, 100)
return f"Processed: {data}"
Configuração de autenticação
from fastmcp import FastMCP
from fastmcp.server.auth import BearerAuthProvider
auth = BearerAuthProvider(
jwks_uri="https://your-provider/.well-known/jwks.json",
audience="your-api",
issuer="https://your-provider/"
)
mcp = FastMCP("SecureServer", auth=auth)
Conceitos-chave
Tools
Funções expostas como capacidades executáveis para LLMs. Decoradas com @mcp.tool. Suportam validação Pydantic, async, tipos de retorno customizados e anotações (readOnlyHint, destructiveHint).
Resources & Templates
Fontes de dados estáticas ou dinâmicas identificadas por URIs. Resources usam URIs fixos (data://config), templates usam URIs parametrizados (users://{id}/profile). Suportam tipos MIME, anotações e parâmetros com wildcard.
Context
O objeto Context fornece acesso a recursos MCP dentro de tools/resources: logging, report de progresso, acesso a resources, sampling de LLM, elicitação de usuário e estado de sessão.
Injeção de Dependência
Injete valores em funções de tool/resource usando Depends(). Suporta requisições HTTP, access tokens, dependências customizadas e padrões baseados em gerador para limpeza.
Providers
Controle de onde os componentes vêm. LocalProvider (padrão, baseado em decorador), FileSystemProvider (carrega de arquivos Python em disco), SkillsProvider (bundles empacotados) ou providers customizados.
Autenticação & Autorização
Múltiplos padrões de autenticação: verificação de token (JWT, JWKS), proxy OAuth, proxy OIDC, OAuth remoto e servidor OAuth completo. Autorização via escopos em componentes e middleware.
Middleware
Intercepte e modifique requests/responses. Middleware integrado para rate limiting, tratamento de erros, logging e limites de tamanho de response. Middleware customizado via @mcp.middleware.
Usando as referências
A documentação detalhada está organizada na pasta references/:
Primeiros Passos
- getting-started/installation.md - Instale FastMCP, dependências opcionais, verifique setup
- getting-started/upgrade-guide.md - Migre de FastMCP 2.x para 3.0
- getting-started/quickstart.md - Primeiro servidor, tools, resources, prompts, executar
Server
- server/server-class.md - Configuração do servidor FastMCP, opções de transport, filtro de tags
- server/tools.md - Decorador tool, parâmetros, validação, tipos de retorno, anotações
- server/resources-and-templates.md - Resources, templates, URIs, wildcards, tipos MIME
Context
- context/mcp-context.md - Objeto Context, logging, progresso, acesso a resources, sampling
- context/background-tasks.md - Operações de longa duração com suporte a tasks
- context/dependency-injection.md - Depends(), deps customizadas, requisição HTTP, access tokens
- context/user-elicitation.md - Solicite entrada estruturada de usuários durante execução
Features
- features/icons.md - Ícones customizados para tools, resources, prompts e servidores
- features/lifespans.md - Gerenciamento de ciclo de vida do servidor e hooks de startup/shutdown
- features/client-logging.md - Envie mensagens de log para clientes MCP
- features/middleware.md - Pipeline de request/response, middleware integrado e customizado
- features/pagination.md - Paginação de listas grandes de componentes
- features/progress-reporting.md - Reporte progresso para operações de longa duração
- features/sampling.md - Solicite conclusões de LLM do cliente
- features/storage-backends.md - Storage em memória, arquivo e Redis para cache e tokens
- features/opentelemetry.md - Rastreamento distribuído e observabilidade
- features/versioning.md - Versione componentes e filtre por intervalos de versão
Autenticação
- authentication/token-verification.md - JWT, JWKS, introspection, chaves estáticas, customizado
- authentication/remote-oauth.md - Delegue autenticação ao provider OAuth upstream
- authentication/oauth-proxy.md - Proxy OAuth completo com PKCE, gerenciamento de clientes
- authentication/oidc-proxy.md - Proxy OpenID Connect com auto-discovery
- authentication/full-oauth-server.md - Servidor OAuth completo integrado
Autorização
- authorization.md - Controle de acesso baseado em escopo, autorização em middleware, padrões
Providers
- providers/local.md - Provider padrão, registro de componentes baseado em decorador
- providers/filesystem.md - Carregue componentes de arquivos Python em disco
- providers/skills.md - Empacote e distribua bundles de componentes
- providers/custom.md - Construa providers customizados para qualquer fonte de componente
Histórico de versões
v1.0.0 (Fevereiro de 2026)
- Lançamento inicial cobrindo FastMCP 3.0 (release candidate)
- 30 arquivos de referência em 7 categorias
- Cobertura completa de tools, resources, context, autenticação, providers e features
1---2name: fastmcp-server3description: Guia completo para construir servidores MCP com FastMCP 3.0 - tools, resources, autenticação, providers, middleware e deploy. Use ao criar servidores MCP em Python ou integrar modelos de IA com ferramentas e dados externos.4license: MIT5---67# Desenvolvimento de Servidores FastMCP 3.089Referência completa para construir servidores MCP (Model Context Protocol) prontos para produção com FastMCP 3.0 - o framework Pythônico rápido para conectar LLMs a ferramentas e dados.1011## Quando usar esta skill1213**Use FastMCP Server quando:**14- Criar um novo servidor MCP em Python15- Adicionar tools, resources ou prompts a um servidor MCP16- Implementar autenticação (OAuth, OIDC, verificação de token)17- Configurar middleware para logging, rate limiting ou autorização18- Configurar providers (local, filesystem, skills, customizado)19- Construir servidores MCP para produção com telemetria e storage20- Fazer upgrade de FastMCP 2.x para 3.02122**Áreas-chave cobertas:**23- **Tools & Resources** (CORE): Decoradores, validação, tipos de retorno, templates24- **Context & DI** (CORE): Contexto MCP, injeção de dependência, background tasks25- **Autenticação** (SECURITY): OAuth, OIDC, verificação de token, padrões de proxy26- **Autorização** (SECURITY): Controle de acesso baseado em escopo e role27- **Middleware** (ADVANCED): Pipeline de request/response, middleware integrado28- **Providers** (ADVANCED): Local, filesystem, skills e providers customizados29- **Features** (ADVANCED): Paginação, sampling, storage, OpenTelemetry, versionamento3031## Referência rápida3233### Padrões principais3435**Criar um servidor com tools:**36```python37from fastmcp import FastMCP3839mcp = FastMCP("MyServer")4041@mcp.tool42def add(a: int, b: int) -> int:43 """Add two numbers"""44 return a + b45```4647**Criar um resource:**48```python49@mcp.resource("data://config")50def get_config() -> dict:51 """Return server configuration"""52 return {"version": "1.0", "debug": False}53```5455**Criar um template de resource:**56```python57@mcp.resource("users://{user_id}/profile")58def get_user_profile(user_id: str) -> dict:59 """Get a user's profile by ID"""60 return fetch_user(user_id)61```6263**Criar um prompt:**64```python65@mcp.prompt66def review_code(code: str, language: str = "python") -> str:67 """Review code for best practices"""68 return f"Review this {language} code:\n\n{code}"69```7071**Executar o servidor:**72```python73if __name__ == "__main__":74 mcp.run()7576# Or with transport options:77# mcp.run(transport="sse", host="0.0.0.0", port=8000)78```7980### Usar context em tools8182```python83from fastmcp import FastMCP, Context8485mcp = FastMCP("MyServer")8687@mcp.tool88def process_data(uri: str, ctx: Context) -> str:89 """Process data with logging and progress"""90 ctx.info(f"Processing {uri}")91 ctx.report_progress(0, 100)92 data = ctx.read_resource(uri)93 ctx.report_progress(100, 100)94 return f"Processed: {data}"95```9697### Configuração de autenticação9899```python100from fastmcp import FastMCP101from fastmcp.server.auth import BearerAuthProvider102103auth = BearerAuthProvider(104 jwks_uri="https://your-provider/.well-known/jwks.json",105 audience="your-api",106 issuer="https://your-provider/"107)108109mcp = FastMCP("SecureServer", auth=auth)110```111112## Conceitos-chave113114### Tools115Funções expostas como capacidades executáveis para LLMs. Decoradas com `@mcp.tool`. Suportam validação Pydantic, async, tipos de retorno customizados e anotações (readOnlyHint, destructiveHint).116117### Resources & Templates118Fontes de dados estáticas ou dinâmicas identificadas por URIs. Resources usam URIs fixos (`data://config`), templates usam URIs parametrizados (`users://{id}/profile`). Suportam tipos MIME, anotações e parâmetros com wildcard.119120### Context121O objeto `Context` fornece acesso a recursos MCP dentro de tools/resources: logging, report de progresso, acesso a resources, sampling de LLM, elicitação de usuário e estado de sessão.122123### Injeção de Dependência124Injete valores em funções de tool/resource usando `Depends()`. Suporta requisições HTTP, access tokens, dependências customizadas e padrões baseados em gerador para limpeza.125126### Providers127Controle de onde os componentes vêm. `LocalProvider` (padrão, baseado em decorador), `FileSystemProvider` (carrega de arquivos Python em disco), `SkillsProvider` (bundles empacotados) ou providers customizados.128129### Autenticação & Autorização130Múltiplos padrões de autenticação: verificação de token (JWT, JWKS), proxy OAuth, proxy OIDC, OAuth remoto e servidor OAuth completo. Autorização via escopos em componentes e middleware.131132### Middleware133Intercepte e modifique requests/responses. Middleware integrado para rate limiting, tratamento de erros, logging e limites de tamanho de response. Middleware customizado via `@mcp.middleware`.134135## Usando as referências136137A documentação detalhada está organizada na pasta `references/`:138139### Primeiros Passos140- **getting-started/installation.md** - Instale FastMCP, dependências opcionais, verifique setup141- **getting-started/upgrade-guide.md** - Migre de FastMCP 2.x para 3.0142- **getting-started/quickstart.md** - Primeiro servidor, tools, resources, prompts, executar143144### Server145- **server/server-class.md** - Configuração do servidor FastMCP, opções de transport, filtro de tags146- **server/tools.md** - Decorador tool, parâmetros, validação, tipos de retorno, anotações147- **server/resources-and-templates.md** - Resources, templates, URIs, wildcards, tipos MIME148149### Context150- **context/mcp-context.md** - Objeto Context, logging, progresso, acesso a resources, sampling151- **context/background-tasks.md** - Operações de longa duração com suporte a tasks152- **context/dependency-injection.md** - Depends(), deps customizadas, requisição HTTP, access tokens153- **context/user-elicitation.md** - Solicite entrada estruturada de usuários durante execução154155### Features156- **features/icons.md** - Ícones customizados para tools, resources, prompts e servidores157- **features/lifespans.md** - Gerenciamento de ciclo de vida do servidor e hooks de startup/shutdown158- **features/client-logging.md** - Envie mensagens de log para clientes MCP159- **features/middleware.md** - Pipeline de request/response, middleware integrado e customizado160- **features/pagination.md** - Paginação de listas grandes de componentes161- **features/progress-reporting.md** - Reporte progresso para operações de longa duração162- **features/sampling.md** - Solicite conclusões de LLM do cliente163- **features/storage-backends.md** - Storage em memória, arquivo e Redis para cache e tokens164- **features/opentelemetry.md** - Rastreamento distribuído e observabilidade165- **features/versioning.md** - Versione componentes e filtre por intervalos de versão166167### Autenticação168- **authentication/token-verification.md** - JWT, JWKS, introspection, chaves estáticas, customizado169- **authentication/remote-oauth.md** - Delegue autenticação ao provider OAuth upstream170- **authentication/oauth-proxy.md** - Proxy OAuth completo com PKCE, gerenciamento de clientes171- **authentication/oidc-proxy.md** - Proxy OpenID Connect com auto-discovery172- **authentication/full-oauth-server.md** - Servidor OAuth completo integrado173174### Autorização175- **authorization.md** - Controle de acesso baseado em escopo, autorização em middleware, padrões176177### Providers178- **providers/local.md** - Provider padrão, registro de componentes baseado em decorador179- **providers/filesystem.md** - Carregue componentes de arquivos Python em disco180- **providers/skills.md** - Empacote e distribua bundles de componentes181- **providers/custom.md** - Construa providers customizados para qualquer fonte de componente182183## Histórico de versões184185**v1.0.0** (Fevereiro de 2026)186- Lançamento inicial cobrindo FastMCP 3.0 (release candidate)187- 30 arquivos de referência em 7 categorias188- Cobertura completa de tools, resources, context, autenticação, providers e features