MCP Servers
Uma coleção de servidores MCP para Cursor IDE, incluindo serviços de demonstração e clima.
Documentação
Projeto MCP Servers
Conjunto de serviços desenvolvidos com base no Model Context Protocol (MCP), para suportar os recursos inteligentes do Cursor IDE. Atualmente inclui um serviço de exemplo e um serviço de clima.
Requisitos do ambiente de desenvolvimento
- Node.js >= 16.0.0
- npm >= 8.0.0
- TypeScript >= 4.5.0
- Cursor IDE (versão mais recente)
Estrutura do projeto
mcp-servers/
├── src/ # 源代码目录
│ ├── demo/ # 示例服务
│ │ ├── config/ # 配置层:常量、类型定义
│ │ │ ├── constants.ts # 常量定义
│ │ │ └── types.ts # 类型定义
│ │ ├── controllers/ # 控制器层:请求处理
│ │ │ └── GreetingController.ts # 问候控制器
│ │ ├── service/ # 服务层:业务逻辑
│ │ │ └── GreetingService.ts # 问候服务
│ │ ├── package.json # 服务配置文件
│ │ ├── tsconfig.json # TypeScript 配置
│ │ └── index.ts # 服务入口文件
│ │
│ └── weather/ # 天气服务
│ ├── config/ # 配置层:常量、类型定义
│ │ ├── constants.ts # 常量定义
│ │ └── types.ts # 类型定义
│ ├── controllers/ # 控制器层:请求处理
│ │ └── WeatherController.ts # 天气控制器
│ ├── service/ # 服务层:业务逻辑
│ │ └── WeatherService.ts # 天气服务
│ ├── package.json # 服务配置文件
│ ├── tsconfig.json # TypeScript 配置
│ └── index.ts # 服务入口文件
│
├── build/ # 编译输出目录
├── node_modules/ # 依赖包
├── package.json # 项目配置
├── tsconfig.json # TypeScript 配置
└── README.md # 项目文档
Arquitetura em camadas de código
O projeto adota um design de arquitetura em três camadas, e cada serviço segue o mesmo padrão estrutural:
1. Camada de configuração (Config)
Localização: 服务目录/config/
- Responsabilidades:
- Definir constantes e itens de configuração
- Declarar tipos e interfaces
- Gerenciar variáveis de ambiente
- Arquivos principais:
constants.ts: Definição de constantestypes.ts: Definição de tipos
- Características:
- Gerenciamento centralizado de configuração
- Segurança de tipos
- Fácil de manter e modificar
2. Camada de controladores (Controllers)
Localização: 服务目录/controllers/
- Responsabilidades:
- Processar requisições e respostas MCP
- Validação de parâmetros e tratamento de erros
- Chamar métodos da camada de serviço
- Arquivos principais:
XXXController.ts: Controlador de negócios específico
- Características:
- Validação de parâmetros de requisição
- Tratamento de erros e logs
- Formatação de respostas
3. Camada de serviço (Service)
Localização: 服务目录/service/
- Responsabilidades:
- Implementar a lógica de negócios principal
- Processar transformação de dados
- Chamar APIs externas
- Arquivos principais:
XXXService.ts: Serviço de negócios específico
- Características:
- Encapsulamento da lógica de negócios
- Processamento e transformação de dados
- Integração com serviços externos
Ponto de entrada do serviço (index.ts)
Localização: 服务目录/index.ts
- Responsabilidades:
- Inicializar instâncias de serviço
- Registrar ferramentas MCP
- Processar entrada e saída padrão
- Características:
- Ponto de entrada unificado
- Registro de ferramentas MCP
- Tratamento de erros
Fluxo de desenvolvimento
-
Criar novo serviço
mkdir -p src/new-service/{config,controllers,service} -
Implementar as funcionalidades de cada camada
- Camada de configuração: definir constantes e tipos
- Camada de controladores: processar requisições e respostas
- Camada de serviço: implementar a lógica de negócios
-
Criar arquivos de configuração
package.json: dependências e scripts do serviçotsconfig.json: configuração do TypeScript
-
Escrever o arquivo de entrada
- Criar
index.ts - Registrar ferramentas MCP
- Implementar o processamento de requisições
- Criar
Início rápido
1. Clonar o projeto
git clone <repository-url>
cd mcp-servers
2. Instalar dependências
npm install
3. Compilar o projeto
# 构建所有服务
npm run build
# 构建单个服务
npm run build:weather # 构建天气服务
npm run build:demo # 构建示例服务
4. Configurar o MCP
Editar o arquivo ~/.cursor/mcp.json:
{
"mcpServers": {
"weather": {
"command": "node",
"args": [
"/your/path/to/mcp-servers/build/weather/index.js"
],
"env": {
"OPENWEATHER_API_KEY": "your_api_key_here"
}
}
}
}
5. Iniciar o serviço
# 启动天气服务
npm run start:weather
# 启动示例服务
npm run start:demo
Descrição dos serviços disponíveis
1. Serviço de exemplo (Demo)
- Localização:
src/demo/ - Funcionalidade: demonstrar a estrutura básica e o método de desenvolvimento de serviços MCP
- Características:
- Exemplo simples de requisição e resposta
- Tratamento básico de erros
- Comentários de código completos, adequado para aprendizado
2. Serviço de clima (Weather)
- Localização:
src/weather/ - Funcionalidade: fornecer serviço de consulta de clima global
- Características:
- Consulta de clima em tempo real
- Previsão do tempo para 5 dias
- Suporte a consulta de múltiplas cidades
- Informações meteorológicas detalhadas
Consulte a documentação detalhada de cada serviço:
Guia de desenvolvimento
Criar novo serviço
- Criar um novo diretório de serviço no diretório
src - Consultar a estrutura de diretórios dos serviços existentes
- Implementar os controladores e serviços necessários
- Adicionar os scripts de compilação e inicialização correspondentes em
package.json
Métodos de depuração
- Usar
console.error()para gerar informações de depuração - Verificar os logs MCP do Cursor IDE
- Usar o recurso de mapeamento de código-fonte do TypeScript
Testes
# 运行所有测试
npm test
# 运行特定服务的测试
npm run test:weather
Perguntas frequentes
-
O serviço não inicia
- Verificar se a porta está em uso
- Confirmar a configuração das variáveis de ambiente
- Validar a saída da compilação
-
Falha na chamada da API
- Verificar a configuração da API Key
- Confirmar a conexão de rede
- Consultar os logs de erro
-
O Cursor IDE não reconhece o serviço
- Verificar a configuração do MCP
- Reiniciar o Cursor IDE
- Confirmar o status do serviço
Guia de contribuição
- Fazer fork do projeto
- Criar um branch de funcionalidade
- Enviar as alterações
- Enviar para o branch
- Criar um Pull Request
Licença
MIT License