Template MCP Server
Um modelo de CLI para inicializar rapidamente um servidor MCP com FastMCP, suportando transporte stdio e HTTP.
Documentação
@mcpdotdirect/template-mcp-server
Uma ferramenta CLI para começar rapidamente a construir seu próprio servidor MCP (Model Context Protocol) usando FastMCP
📋 Uso
# with npx
npx @mcpdotdirect/create-mcp-server
# Or with npm
npm init @mcpdotdirect/mcp-server
🔭 O que está incluído
O template inclui:
- Configuração básica do servidor com opções de transporte stdio e HTTP usando FastMCP
- Estrutura para definir ferramentas, recursos e prompts do MCP
- Configuração TypeScript
- Scripts de desenvolvimento e configuração
✨ Recursos
- FastMCP: Construído usando o framework FastMCP para implementação mais simples
- Suporte a Transporte Duplo: Execute seu servidor MCP via stdio ou HTTP
- TypeScript: Suporte completo a TypeScript para segurança de tipos
- Extensível: Fácil de adicionar ferramentas, recursos e prompts personalizados
🚀 Começando
Após criar seu projeto:
-
Instale as dependências usando seu gerenciador de pacotes preferido:
# Using npm npm install # Using yarn yarn # Using pnpm pnpm install # Using bun bun install -
Inicie o servidor:
# Start the stdio server npm start # Or start the HTTP server npm run start:http -
Para desenvolvimento com recarga automática:
# Development mode with stdio npm run dev # Development mode with HTTP npm run dev:http
Nota: Os scripts padrão no package.json usam Bun como runtime (por exemplo,
bun run src/index.ts). Se você preferir usar um gerenciador de pacotes ou runtime diferente, pode modificar esses scripts no seu arquivo package.json para usar Node.js ou outro runtime de sua escolha.
📖 Uso Detalhado
Métodos de Transporte
O servidor MCP suporta dois métodos de transporte:
-
Transporte stdio (Modo Linha de Comando):
- Executa na sua máquina local
- Gerenciado automaticamente pelo Cursor
- Comunica-se diretamente via
stdout - Acessível apenas por você localmente
- Ideal para desenvolvimento pessoal e ferramentas
-
Transporte SSE (Modo Web HTTP):
- Pode executar localmente ou remotamente
- Gerenciado e executado por você
- Comunica-se pela rede
- Pode ser compartilhado entre máquinas
- Ideal para colaboração em equipe e ferramentas compartilhadas
Executando o Servidor Localmente
Transporte stdio (Modo CLI)
Inicie o servidor no modo stdio para ferramentas CLI:
# Start the stdio server
npm start
# or with other package managers
yarn start
pnpm start
bun start
# Start the server in development mode with auto-reload
npm run dev
# or
yarn dev
pnpm dev
bun dev
Transporte HTTP (Modo Web)
Inicie o servidor no modo HTTP para aplicações web:
# Start the HTTP server
npm run start:http
# or
yarn start:http
pnpm start:http
bun start:http
# Start the HTTP server in development mode with auto-reload
npm run dev:http
# or
yarn dev:http
pnpm dev:http
bun dev:http
Por padrão, o servidor HTTP executa na porta 3001. Você pode alterar isso definindo a variável de ambiente PORT:
# Start the HTTP server on a custom port
PORT=8080 npm run start:http
Conectando-se ao Servidor
Conectando-se pelo Cursor
Para conectar seu servidor MCP pelo Cursor:
- Abra o Cursor e vá para Configurações (ícone de engrenagem no canto inferior esquerdo)
- Clique em "Features" na barra lateral esquerda
- Role para baixo até a seção "MCP Servers"
- Clique em "Add new MCP server"
- Insira os seguintes detalhes:
- Nome do servidor:
my-mcp-server(ou qualquer nome que preferir) - Para o modo stdio:
- Tipo:
command - Comando: O caminho para o executável do seu servidor, por exemplo,
npm start
- Tipo:
- Para o modo SSE:
- Tipo:
url - URL:
http://localhost:3001/sse
- Tipo:
- Nome do servidor:
- Clique em "Save"
Usando mcp.json com o Cursor
Para uma configuração mais portátil, crie um arquivo .cursor/mcp.json no diretório raiz do seu projeto:
{
"mcpServers": {
"my-mcp-stdio": {
"command": "npm",
"args": [
"start"
],
"env": {
"NODE_ENV": "development"
}
},
"my-mcp-sse": {
"url": "http://localhost:3001/sse"
}
}
}
Você também pode criar uma configuração global em ~/.cursor/mcp.json para disponibilizar seus servidores MCP em todos os seus workspaces do Cursor.
Nota:
- As entradas do tipo
commandexecutam o servidor no modo stdio - A entrada do tipo
urlconecta-se ao servidor HTTP usando transporte SSE - Você pode fornecer variáveis de ambiente usando o campo
env - Ao conectar via SSE com FastMCP, use a URL completa incluindo o caminho
/sse:http://localhost:3001/sse
Testando Seu Servidor com Ferramentas CLI
O FastMCP fornece ferramentas integradas para testar seu servidor:
# Test with mcp-cli
npx fastmcp dev server.js
# Inspect with MCP Inspector
npx fastmcp inspect server.ts
Usando Variáveis de Ambiente
Você pode personalizar o servidor usando variáveis de ambiente:
# Change the HTTP port (default is 3001)
PORT=8080 npm run start:http
# Change the host binding (default is 0.0.0.0)
HOST=127.0.0.1 npm run start:http
🛠️ Adicionando Ferramentas e Recursos Personalizados
Ao adicionar ferramentas, recursos ou prompts personalizados ao seu servidor FastMCP:
Ferramentas
server.addTool({
name: "hello_world",
description: "A simple hello world tool",
parameters: z.object({
name: z.string().describe("Name to greet")
}),
execute: async (params) => {
return `Hello, ${params.name}!`;
}
});
Recursos
server.addResourceTemplate({
uriTemplate: "example://{id}",
name: "Example Resource",
mimeType: "text/plain",
arguments: [
{
name: "id",
description: "Resource ID",
required: true,
},
],
async load({ id }) {
return {
text: `This is an example resource with ID: ${id}`
};
}
});
Prompts
server.addPrompt({
name: "greeting",
description: "A simple greeting prompt",
arguments: [
{
name: "name",
description: "Name to greet",
required: true,
},
],
load: async ({ name }) => {
return `Hello, ${name}! How can I help you today?`;
}
});
📚 Documentação
Para mais informações sobre o FastMCP, visite o Repositório do FastMCP no GitHub.
Para mais informações sobre o Model Context Protocol, visite a Documentação do MCP.
📄 Licença
Este projeto está licenciado sob a Licença MIT - consulte o arquivo LICENSE para obter detalhes.