agro-market-agent
Stores and retrieves historical commodity price trends using SQLite database.
Click on "Install Server".
Wait a few minutes for the server to deploy. Once ready, it will show a "Started" state.
In the chat, type
@followed by the MCP server name and your instructions, e.g., "@agro-market-agentWhat is the margin for soybeans at $12/bushel?"
That's it! The server will respond to your query, and you can continue using it as needed.
Here is a step-by-step guide with screenshots.
agro-market-agent
Agente de IA multi-step que responde perguntas de inteligência de mercado agropecuário — "qual minha margem na soja hoje, com custo de R$95/saca?" — decidindo sozinho quais ferramentas chamar, em que ordem, e finalizando com um relatório. As ferramentas são expostas por um MCP server próprio (Model Context Protocol), reutilizável em qualquer cliente MCP.
Não é um wrapper de chatbot: é um agente instrumentado, testado e avaliado, construído com as preocupações de um sistema de produção.
O que este projeto demonstra
Área | Como |
Agente sobre a API oficial | Loop de tool-use com o SDK da Anthropic — sem framework de orquestração, para deixar explícito o mecanismo. |
MCP server próprio | 5 tools tipadas ( |
Avaliação rigorosa |
|
Observabilidade | Tracing estruturado (spans JSON no stderr), contabilidade de tokens e custo por execução, |
Type safety | Modelos Pydantic v2 em todas as fronteiras; mypy strict e ruff no CI. |
Robustez | Guardrails de entrada, timeout global, limite de iterações; cliente HTTP com retry exponencial + cache TTL. |
Testes sem custo | Anthropic e HTTP mockados ( |
Fonte de dados plugável | Padrão adapter: |
Engenharia de projeto |
|
Related MCP server: leafengines-mcp-server
Arquitetura
Usuário
│ pergunta em linguagem natural
▼
Agente (Claude + tool runner) ── src/agro_market/agent.py
│ guardrails · tracing · timeout · limite de iterações
│ descobre e chama tools via MCP (stdio)
▼
MCP Server ── src/agro_market/server.py
├── list_commodities
├── get_commodity_price → data_sources.py (mock | yahoo, com retry+cache)
├── calculate_margin → calculations.py (lógica pura)
├── get_historical_trend → db.py (SQLite)
└── generate_report → markdownEstrutura
src/agro_market/
├── agent.py loop de orquestração (Claude + MCP)
├── server.py MCP server (5 tools)
├── data_sources.py adapter de preço: mock | Yahoo (httpx + tenacity + cache)
├── calculations.py lógica de negócio pura
├── db.py SQLite + histórico auto-semeado
├── domain.py modelos Pydantic (contratos entre camadas)
├── observability.py tracer, spans, custo, RunTrace
├── guardrails.py validação de entrada
└── config.py settings tipadas (pydantic-settings)
tests/
├── test_*.py unit + integração (mockados, rodam no CI)
└── eval.py avaliação end-to-end (LLM-as-judge, usa a API)Quickstart
python -m venv .venv
.venv\Scripts\activate # Windows (Linux/macOS: source .venv/bin/activate)
pip install -e ".[dev]"
copy .env.example .env # e preencha ANTHROPIC_API_KEYRodar o agente:
python -m agro_market.agent "Qual minha margem na soja com custo de R$95/saca em 1000 sacas? Gere um relatório."O agente busca o preço → calcula a margem → consulta a tendência → gera o relatório, e ao final reporta tools chamadas, tokens, custo e latência.
Qualidade (o que roda no CI, sem API key)
make check # ruff + mypy strict + pytest (com cobertura)
# ou individualmente:
ruff check .
mypy
pytest # 20 testes, ~86% de cobertura, sem redeAvaliação (metodologia)
tests/eval.py roda cenários fixos e mede, por caso:
Seleção de tools — precision/recall contra o conjunto esperado.
Qualidade da resposta — LLM-as-judge dá nota 0..1 com justificativa (via structured output).
Custo e latência por execução.
Agrega as métricas e compara com um baseline (eval_baseline.json): se a
nota média cair além do limiar, sinaliza regressão e falha. É o que separa
"funcionou uma vez" de "não regrediu".
python tests/eval.py # exige ANTHROPIC_API_KEYObservabilidade
Cada execução emite spans estruturados (JSON no stderr, prontos para um
coletor de logs) e persiste uma RunTrace completa em traces/ — pergunta,
spans com duração, tools chamadas, tokens e custo estimado. Debugar uma run
que deu errado é ler um JSON, não vasculhar prints.
Fontes de dados
AGRO_PRICE_SOURCE=mock(default) — determinística, offline.AGRO_PRICE_SOURCE=yahoo— futuros via Yahoo Finance, com timeout, retry exponencial e cache TTL. Ponto de extensão para CEPEA/ESALQ isolado no adapter.
Configuração
Todas via ambiente (prefixo AGRO_) — ver .env.example. Principais:
AGRO_MODEL, AGRO_PRICE_SOURCE, AGRO_MAX_TOOL_ITERATIONS, AGRO_AGENT_TIMEOUT_S.
MCP server em outro cliente
python -m agro_market.server # processo stdioAponte a config MCP do cliente (ex: Claude Desktop) para esse comando.
Roadmap
Integração CEPEA/ESALQ real no adapter
Export de traces em formato OpenTelemetry
GIF de demonstração no README
Stack
Python · Anthropic API (tool use) · Model Context Protocol · Pydantic v2 · httpx · tenacity · SQLite · pytest · ruff · mypy · GitHub Actions
Maintenance
Resources
Unclaimed servers have limited discoverability.
Looking for Admin?
If you are the server author, to access and configure the admin panel.
Related MCP Servers
- AlicenseAqualityCmaintenanceAn MCP server that provides real-time access to Brazilian agricultural data, including commodity prices, crop estimates, climate information, and deforestation rates. It integrates data from 19 public sources like CEPEA, CONAB, and IBGE to enable LLMs to analyze the Brazilian agribusiness sector.1026MIT
- Alicense-qualityBmaintenanceAgricultural intelligence MCP server providing soil analysis, crop recommendations, weather forecasts, and environmental impact assessment.5MIT
- Alicense-qualityAmaintenanceEU Crop Intelligence MCP Server — Yield forecasts, weather analysis, and phenology models for 15 countries. AI agent-native, multi-source intelligence (NASA POWER, Eurostat, Open-Meteo).MIT
- Alicense-qualityCmaintenanceAn MCP server providing global soft-commodity data (cocoa, coffee, sugar, cotton, cashew) with per-call billing in USDC, offering tools for farmgate prices, ICE futures, CFTC COT positioning, and historical series.11MIT
Related MCP Connectors
MCP Server for agents to onboard, pay, and provision services autonomously with InFlow
Autopilot MCP server for GEO analyses, reports, content, audits, memories and agents.
A paid remote MCP for CLI tool MCP, built to return verdicts, receipts, usage logs, and audit-ready
Latest Blog Posts
- Who's Calling? MCP Hosts Are an Identity Blind Spot (And the Spec Knows It)By Om-Shree-0709 on .mcpAgent IdentityOAuth 2.1
- Your AI Chatbot Just Exposed Your CEO's Salary to an InternBy Om-Shree-0709 on .Agent IdentityMCP SecurityOAuth Delegation
- Why MCP Servers Need Execution Sandboxing (And Why Your Current Stack Isn't Enough)By Om-Shree-0709 on .Agentic AiPrompt InjectionWebAssembly
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/caioribeiro25/agro-market-agent'
If you have feedback or need assistance with the MCP directory API, please join our Discord server