Pular para o conteúdo
Skillpedia
Agentes40 mil · #5294

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

https://github.com/github/awesome-copilot/blob/main/skills/python-mcp-server-generator/SKILL.md

Mensagem pronta para colar

Use esta skill para me ajudar: https://github.com/github/awesome-copilot/blob/main/skills/python-mcp-server-generator/SKILL.md Leia o arquivo SKILL.md desse link e siga as instruções dele na minha tarefa.
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-generator

Ou baixe só o arquivo:

curl -L https://raw.githubusercontent.com/github/awesome-copilot/main/skills/python-mcp-server-generator/SKILL.md -o SKILL.md
Conteú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 pacote src/, e os testes não conseguem importar server.py.
  • uv init cria 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:

  1. Substitua divide pelas ferramentas que o usuário precisa.
  2. 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.
  3. Retorne um modelo Pydantic ou um TypedDict quando o cliente precisar de dados legíveis por máquina. O SDK cria o esquema de saída a partir do tipo de retorno.
  4. Use async def para I/O. O SDK executa uma ferramenta síncrona em uma thread de trabalho.
  5. Marque uma ferramenta somente leitura com @mcp.tool(annotations=ToolAnnotations(read_only_hint=True)) (de mcp.types). Use destructive_hint=True para uma ferramenta destrutiva.
  6. 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 Client em memória não precisa de subprocesso nem de porta. Ele se conecta com a revisão 2026-07-28.
  • O pacote mcp instala anyio, que fornece o marcador anyio. Não adicione pytest-asyncio.

Etapa 4: Execute os testes até que passem

  1. Execute uv run pytest.
  2. Se um teste falhar, leia o erro. Corrija o servidor ou o teste.
  3. Execute uv run pytest novamente.
  4. 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.py inicia o servidor stdio. O servidor espera por um host no stdin e não imprime nada.
  • uv run mcp dev server.py abre 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 FastMCP e mcp.server.fastmcp. Importe a classe do servidor com from mcp.server import MCPServer.
  • Importe Context, Image, Audio, Resolve, Elicit, ElicitationResult, AcceptedElicitation, Message, UserMessage e AssistantMessage de mcp.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

Essa skill é útil?

0

Entre para votar.

Comentários

  • …

Mais skills deste repositório

Skills parecidas