python-mcp-server-generator
Faz seu agente criar um servidor Python para se comunicar com clientes de IA. Ele expõe funções e dados como ferramentas que a IA pode usar.
O que ela faz
Este programa cria um 'servidor' em Python que permite que outras IAs (como Claude) usem funções que você define. Ele expõe suas funções, um banco de dados ou uma API para que a IA possa interagir com eles.
Quando usar
- ✓Quando você quer que uma IA acesse dados de um banco de dados.
- ✓Quando você quer que uma IA execute uma função específica no seu computador.
- ✓Quando você quer criar uma ponte entre uma IA e uma API existente.
Exemplo do que pedir para a IA
“Crie um servidor Python que me permita dividir números usando a IA.”
Quer saber mais? Abra as seções abaixo.
Como usar
O jeito mais fácil: copie a mensagem abaixo e cole no Claude, ChatGPT, Cursor ou outra IA. Ela lê a skill e segue as instruções.
Link da skill
Mensagem pronta para colar
Como funciona
Você escreve o código Python definindo as funções que a IA poderá usar. O programa organiza essas funções e as prepara para que a IA possa chamá-las e receber os resultados.
Instalação
Jeito mais fácil: copie o link da skill e cole no Claude, ChatGPT ou Cursor pedindo para seguir as instruções.
No terminal (Claude Code, Codex, Cursor), na pasta do projeto:
npx skills add github/awesome-copilot --skill python-mcp-server-generatorOu baixe só o arquivo:
curl -L https://raw.githubusercontent.com/github/awesome-copilot/main/skills/python-mcp-server-generator/SKILL.md -o SKILL.mdConteúdo técnico (SKILL.md)
Tradução do texto original do autor no GitHub. Os comandos e códigos estão como no original.
Gerador de Servidor MCP Python
Crie um servidor Model Context Protocol (MCP) em Python com o SDK Python oficial do MCP v2. O SDK v2 suporta a revisão 2026-07-28 da especificação MCP. O mesmo servidor também atende clientes que usam revisões anteriores.
Fluxo de Trabalho
Copie esta lista de verificação e acompanhe seu progresso:
- Etapa 1: Crie o projeto.
- Etapa 2: Escreva o servidor.
- Etapa 3: Escreva os testes.
- Etapa 4: Execute os testes até que passem.
- Etapa 5: Configure o cliente.
Etapa 1: Crie o projeto
Execute estes comandos:
uv init --app --no-package project-name
cd project-name
uv add "mcp[cli]>=2,<3"
uv add --dev pytest
Em seguida, exclua main.py. O servidor vai em server.py.
- Sem
--no-package, o uv cria um layout de pacotesrc/, e os testes não conseguem importarserver.py. uv initcria o arquivo.gitignore. Não escreva um diferente.
Etapa 2: Escreva o servidor
Comece com este modelo:
from mcp.server import MCPServer
from mcp.server.mcpserver.exceptions import ToolError
mcp = MCPServer("Demo", version="0.1.0")
@mcp.tool()
def divide(a: float, b: float) -> float:
"""Divide a by b."""
if b == 0:
raise ToolError("b must not be zero.")
return a / b
if __name__ == "__main__":
mcp.run() # stdio is the default transport
Em seguida, altere o modelo para a solicitação do usuário:
- Substitua
dividepelas ferramentas que o usuário precisa. - Dê a cada ferramenta dicas de tipo completas e uma docstring. O SDK cria o esquema de entrada a partir das dicas de tipo. A docstring se torna a descrição da ferramenta.
- Retorne um modelo Pydantic ou um
TypedDictquando o cliente precisar de dados legíveis por máquina. O SDK cria o esquema de saída a partir do tipo de retorno. - Use
async defpara I/O. O SDK executa uma ferramenta síncrona em uma thread de trabalho. - Marque uma ferramenta somente leitura com
@mcp.tool(annotations=ToolAnnotations(read_only_hint=True))(demcp.types). Usedestructive_hint=Truepara uma ferramenta destrutiva. - Adicione recursos (
@mcp.resource("users://{user_id}")) e prompts (@mcp.prompt()) apenas quando o usuário os solicitar.
Use stdio por padrão. Leia references/streamable-http.md apenas quando o usuário solicitar um servidor remoto ou um servidor HTTP.
Etapa 3: Escreva os testes
Coloque test_server.py ao lado de server.py. Escreva um teste para cada ferramenta e para cada ToolError:
import pytest
from mcp import Client
from server import mcp
@pytest.mark.anyio
async def test_divide():
async with Client(mcp) as client:
result = await client.call_tool("divide", {"a": 6, "b": 3})
assert result.structured_content == {"result": 2.0}
@pytest.mark.anyio
async def test_divide_by_zero():
async with Client(mcp) as client:
result = await client.call_tool("divide", {"a": 1, "b": 0})
assert result.is_error
assert "must not be zero" in result.content[0].text
- O
Clientem memória não precisa de subprocesso nem de porta. Ele se conecta com a revisão 2026-07-28. - O pacote
mcpinstalaanyio, que fornece o marcadoranyio. Não adicionepytest-asyncio.
Etapa 4: Execute os testes até que passem
- Execute
uv run pytest. - Se um teste falhar, leia o erro. Corrija o servidor ou o teste.
- Execute
uv run pytestnovamente. - Continue apenas quando todos os testes passarem.
Etapa 5: Configure o cliente
Para o VS Code, escreva .vscode/mcp.json:
{
"servers": {
"demo": {
"type": "stdio",
"command": "uv",
"args": ["--directory", "/absolute/path/to/project", "run", "server.py"]
}
}
}
Para o Claude Desktop, execute uv run mcp install server.py.
Informe ao usuário estes comandos:
uv run server.pyinicia o servidor stdio. O servidor espera por um host no stdin e não imprime nada.uv run mcp dev server.pyabre o Inspetor MCP. O Inspetor precisa do Node.js.
Armadilhas
O SDK v2 e a revisão 2026-07-28 mudaram muitos padrões do SDK v1. Não copie exemplos do SDK v1.
- O SDK v2 removeu
FastMCPemcp.server.fastmcp. Importe a classe do servidor comfrom mcp.server import MCPServer. - Importe
Context,Image,Audio,Resolve,Elicit,ElicitationResult,AcceptedElicitation,Message,UserMessageeAssistantMessagedemcp.server.mcpserver.
…
Perguntas frequentes
O que é MCP?
MCP significa Model Context Protocol. É uma forma padronizada de fazer com que programas de computador (servidores) e IAs conversem entre si.
O que é um 'servidor' neste contexto?
É um programa que fica 'escutando' e pronto para receber pedidos da IA, executar tarefas e devolver os resultados.
Posso usar isso para criar um cliente de IA?
Não, este programa é especificamente para criar o 'servidor' que a IA vai usar, não o programa que a IA em si utiliza.
Detalhes
Descrição original do autor
Use this skill when the user wants to create a new Model Context Protocol (MCP) server in Python. Also use it to expose Python functions, an API, or a database to AI clients as MCP tools. The skill makes a uv project with the MCP Python SDK v2 (MCPServer), typed tools, in-memory tests, and client configuration. Do not use it for an MCP client or for a server in another language.
repo: github/awesome-copilot
Popularidade
- Estrelas no GitHub
- 40 mil
- Posição no ranking
- #5294
- Licença
- MIT
- Atualizada em
- 15/10/2026
Comentários
- …
Mais skills deste repositório
acquire-codebase-knowledge
Ajuda seu agente a entender e documentar um projeto de código existente. É útil para novas pessoas entrarem no projeto ou para ter uma visão geral da arquitetura.
github/awesome-copilot
acreadiness-assess
Faz seu agente avaliar a prontidão de um projeto para IA e gerar um relatório. É útil para entender o quão bem um projeto está preparado para usar ferramentas de IA.
github/awesome-copilot
acreadiness-generate-instructions
Ajuda seu agente a criar instruções para ferramentas de IA baseadas em uma avaliação. É útil para melhorar a forma como a IA interage com o código e fecha lacunas identificadas.
github/awesome-copilot
acreadiness-policy
Faz seu agente ajudar a definir ou aplicar políticas para avaliação de projetos de IA. É útil para padronizar a forma como os projetos são avaliados e garantir conformidade.
github/awesome-copilot
Skills parecidas
agent-architecture-audit
Faz seu agente verificar se tudo está funcionando corretamente. Ele encontra e conserta problemas em sistemas de IA, garantindo que funcionem como esperado.
affaan-m/ECC
agent-eval
Ajuda seu agente a comparar diferentes ferramentas de programação de IA. Ele mede qual é mais rápido, barato e confiável para realizar tarefas específicas.
affaan-m/ECC
agent-harness-construction
Faz seu agente entender melhor como realizar tarefas. Ele otimiza as ferramentas e instruções que o agente usa para aumentar suas chances de sucesso.
affaan-m/ECC