mcp-server
README.md
# Servidor MCP por Reynaldo Vieira
Este repositório contém uma implementação de um servidor de Protocolo de Contexto de Modelo (MCP) para fins educacionais e de demonstração, criado por Reynaldo Vieira. Este código demonstra como construir um servidor MCP funcional que pode se integrar a vários clientes LLM.
### Principais Benefícios
- Uma lista crescente de integrações pré-construídas que seu LLM pode conectar diretamente
- Flexibilidade para alternar entre provedores e fornecedores de LLM
- Melhores práticas para proteger seus dados em sua infraestrutura
## Visão Geral da Arquitetura
O MCP segue uma arquitetura cliente-servidor, onde uma aplicação hospedeira pode se conectar a vários servidores:
- **Hospedeiros MCP**: Programas como Claude Desktop, IDEs ou ferramentas de IA que desejam acessar dados através do MCP
- **Clientes MCP**: Clientes de protocolo que mantêm conexões 1:1 com os servidores
- **Servidores MCP**: Programas leves que expõem capacidades específicas através do Protocolo de Contexto de Modelo padronizado
- **Fontes de Dados**: Serviços locais (arquivos, bancos de dados) e remotos (APIs) que os servidores MCP podem acessar
## Conceitos Centrais do MCP
Os servidores MCP podem fornecer três tipos principais de capacidades:
- **Recursos**: Dados semelhantes a arquivos que podem ser lidos por clientes (como respostas de API ou conteúdo de arquivos)
- **Ferramentas**: Funções que podem ser chamadas pelo LLM (com a aprovação do usuário)
- **Prompts**: Modelos pré-escritos que ajudam os usuários a realizar tarefas específicas
## Requisitos do Sistema
- Python 3.10 ou superior
- MCP SDK 1.2.0 ou superior
- Gerenciador de pacotes `uv`
## Começando
### Instalando o gerenciador de pacotes uv
No MacOS/Linux:
```bash
curl -LsSf https://astral.sh/uv/install.sh | sh
```
Certifique-se de reiniciar seu terminal para garantir que o comando `uv` seja reconhecido.
### Configuração do Projeto
1. Crie e inicialize o projeto:
```bash
# Crie um novo diretório para o nosso projeto
uv init mcp-server
cd mcp-server
# Crie e ative o ambiente virtual
uv venv
source .venv/bin/activate # No Windows, use: .venv\Scripts\activate
# Instale as dependências
uv add "mcp[cli]" httpx
```
2. Crie o arquivo de implementação do servidor:
```bash
touch main.py
```
### Executando o Servidor
1. Inicie o servidor MCP:
```bash
uv run main.py
```
2. O servidor será iniciado e estará pronto para aceitar conexões.
## Conectando ao Claude Desktop
1. Instale o Claude Desktop a partir do site oficial.
2. Configure o Claude Desktop para usar seu servidor MCP:
Edite `~/Library/Application Support/Claude/claude_desktop_config.json`:
```json
{
"mcpServers": {
"mcp-server-reynaldo": {
"command": "uv", # É melhor usar o caminho absoluto para o comando uv
"args": [
"--directory",
"/CAMINHO/ABSOLUTO/PARA/SEU/mcp-server",
"run",
"main.py"
]
}
}
}
```
3. Reinicie o Claude Desktop.
## Solução de Problemas
Se o seu servidor não estiver sendo reconhecido pelo Claude Desktop:
1. Verifique o caminho e as permissões do arquivo de configuração.
2. Verifique se o caminho absoluto na configuração está correto.
3. Certifique-se de que o `uv` está instalado corretamente e acessível.
4. Verifique os logs do Claude Desktop para mensagens de erro.
## Licença
Este projeto está licenciado sob a Licença MIT. Veja o arquivo [LICENSE](LICENSE) para mais detalhes.
TDQS
A3.7/5.0
Scored across 1 tool
Disambiguation5/5
With only one tool, there is no risk of confusion between tools. The tool's purpose is clear and distinct as the sole operation.
Naming Consistency5/5
The single tool uses a consistent verb_noun pattern (obter_documentacao_reynaldo), and there are no other tools to introduce inconsistency.
Tool Count3/5
A single tool is borderline thin for a standalone server; it covers a narrow purpose but may leave users wanting more functionality, such as listing available libraries or supporting additional operations.
Completeness5/5
For its stated purpose (fetching documentation for specific libraries: langchain, openai, llama-index), the tool is complete. It handles both query and library selection via arguments, covering the full lifecycle of a documentation lookup.
Maintenance
ActivityInactive
ResponsivenessNo issues