loading…
Search for a command to run...
loading…
A general-purpose MCP server with utility tools including datetime information, safe math calculations, text statistics, JSON extraction, knowledge base search,
A general-purpose MCP server with utility tools including datetime information, safe math calculations, text statistics, JSON extraction, knowledge base search, and HTTP GET requests. It demonstrates server-side MCP implementation and can be connected to Claude Desktop or LangGraph agents.
Servidor MCP (Model Context Protocol) com seis ferramentas utilitárias para qualquer cliente compatível — Claude Desktop, LangGraph MCP adapter, OpenAI Agents SDK.
Implementação server-side do MCP (em vez de consumir um servidor existente), com handlers extraídos como funções puras pra serem testáveis sem o runtime MCP.
| Ferramenta | O que faz |
|---|---|
datetime_info |
Data, hora UTC, timestamp Unix, dia da semana, semana ISO |
calculate |
Avalia expressões matemáticas com segurança (math completo) |
text_stats |
Palavras, sentenças, caracteres e tokens estimados de um texto |
json_extract |
Extrai valores de JSON via dot-path (user.address.city) |
search_knowledge |
Busca no knowledge base — stub pronto para conectar ao Qdrant |
http_get |
GET HTTP com allowlist de domínios |
git clone https://github.com/RenanMiqueloti/mcp-tools-server.git
cd mcp-tools-server
python -m venv .venv && source .venv/bin/activate
pip install -r requirements.txt
python server.py
Adicione em ~/Library/Application Support/Claude/claude_desktop_config.json (macOS) ou %APPDATA%\Claude\claude_desktop_config.json (Windows):
{
"mcpServers": {
"mcp-tools": {
"command": "python",
"args": ["/caminho/absoluto/para/server.py"]
}
}
}
Reinicie o Claude Desktop. As ferramentas ficam disponíveis automaticamente.
from langchain_mcp_adapters.client import MultiServerMCPClient
from langgraph.prebuilt import create_react_agent
from langchain_anthropic import ChatAnthropic
client = MultiServerMCPClient({
"mcp-tools": {
"command": "python",
"args": ["server.py"],
"transport": "stdio",
}
})
tools = await client.get_tools()
agent = create_react_agent(ChatAnthropic(model="claude-opus-4-7"), tools)
result = await agent.ainvoke({"messages": [("human", "What day of the week is it?")]})
Em server.py, substitua o stub no handler search_knowledge:
from qdrant_client import QdrantClient
from langchain_openai import OpenAIEmbeddings
client_q = QdrantClient(url=os.getenv("QDRANT_URL"))
embeddings = OpenAIEmbeddings()
query_vec = embeddings.embed_query(query)
hits = client_q.search("knowledge", query_vector=query_vec, limit=top_k)
results = [{"rank": i+1, "text": h.payload["text"], "score": h.score} for i, h in enumerate(hits)]
mcp-tools-server/
├── server.py # Servidor MCP (stdio transport) + handlers
├── tests/ # pytest — handlers + allowlist
├── pyproject.toml # ruff, pytest, mypy config
├── Dockerfile, .dockerignore # imagem 3.12-slim, USER non-root
├── .pre-commit-config.yaml # ruff + ruff-format + checks gerais
├── .github/
│ ├── workflows/ci.yml # lint (ruff) + mypy + tests (py3.11–3.14)
│ └── dependabot.yml # pip + github-actions + docker
├── requirements.txt
├── .env.example
└── LICENSE
pip install -r requirements.txt
pip install pytest ruff mypy pre-commit
pre-commit install # ativa o hook git pre-commit
pytest -v tests/ # roda os testes dos handlers
ruff check . && ruff format --check .
mypy . # type-check
Run in your terminal:
claude mcp add mcp-tools-server -- npx Yes, Tools Server MCP is free — one-click install via Unyly at no cost.
No, Tools Server runs without API keys or environment variables.
Self-hosted: the server runs locally on your machine via the install command above.
Open Tools Server on unyly.org, pick your client tab (Claude Desktop, Claude Code, Cursor) and press Install — the config is generated automatically, no JSON editing.
CSA PROJECT - FZCO © 2026 IFZA Business Park, DDP, Premises Number 31174 - 001
Security
Low riskAutomated heuristic from public metadata — not a security guarantee.