Skip to main content
Glama

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

Related MCP server: MCP Weather Server

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:

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:

# 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
  1. Crie o arquivo de implementação do servidor:

touch main.py

Executando o Servidor

  1. Inicie o servidor MCP:

uv run main.py
  1. 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:

{
    "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"
            ]
        }
    }
}
  1. 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 para mais detalhes.

Available Tools

1 tool
obter_documentacao_reynaldoB

Busca a documentação mais recente para uma determinada consulta e biblioteca. Suporta langchain, openai e llama-index.

Args: query: A consulta a ser pesquisada (por exemplo, "Chroma DB") library: A biblioteca para pesquisar (por exemplo, "langchain")

Returns: Texto da documentação

ParametersJSON Schema
NameRequiredDescriptionDefault
queryYes
libraryYes

TDQS

B3.3/5.0
Behavior2/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

No annotations are provided, so the description carries full burden. It only states it 'seeks' documentation, with no mention of side effects, permissions, rate limits, or safety. This is minimal behavioral disclosure.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is extremely concise, using only a few lines to convey purpose, supported libraries, and parameter descriptions. It is front-loaded and every sentence adds value without redundancy.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given the simple tool (2 string params, no output schema), the description adequately covers purpose and parameter semantics. However, it lacks details about return format, error cases, and usage context, leaving some gaps.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

With 0% schema description coverage, the description provides basic explanations for both parameters (query and library) with examples. This adds meaning beyond the schema types, but lacks details on constraints or format.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states it retrieves the most recent documentation for a given query and library, supported libraries are listed. It is specific and unambiguous, though no sibling tools require differentiation.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description implies when to use (for documentation lookups in supported libraries) but does not explicitly state when not to use or provide alternatives. The mention of supported libraries offers some guidance but is vague.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

TDQS

A3.7/5.0
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
ResponsivenessSyncing

Resources

Unclaimed servers have limited discoverability.

Looking for Admin?

If you are the server author, to access and configure the admin panel.

Related MCP Connectors

Related MCP Servers

  • F
    license
    B
    quality
    D
    maintenance
    A demonstration MCP server created for learning purposes, allowing Claude AI to interact with local files and a Postgres database while implementing a custom Model Context Protocol.
    1
    23
  • A
    license
    A
    quality
    D
    maintenance
    A demonstration MCP server for local development and testing with Claude Desktop on WSL. Provides basic utility tools including greeting messages, echo functionality, and server information retrieval.
    3
    MIT

Latest Blog Posts

MCP directory API

We provide all the information about MCP servers via our MCP API.

curl -X GET 'https://glama.ai/api/mcp/v1/servers/reynaldovieira/mcp-server'

If you have feedback or need assistance with the MCP directory API, please join our Discord server