
Agentkit
io.github.Yacine-ai-techPublished by GitHub account Yacine-ai-techv0.1.18Updated Oct 24, 2026
Governed MCP server: YAML-declared tools, typed effects, policy-gated and audited calls.
Overview
A governed MCP server that serves declarative, policy-gated business-intelligence tools over KPIs, with typed effects and an audit trail.
- What you can do
- Query KPIs, company health, anomalies, metric forecasts, available metrics and executive summaries from the built-in BI pack, plus any tools loaded from YAML packs over your own Postgres or HTTP API. Read KPI resources per domain (Finance, People, Operations, Customer, Engineering, Growth, Logistics, ESG, IT, Security) and use a monthly executive briefing prompt. Record or retract metric annotations through guarded write and destructive tools that are off by default. Every allowed and denied call is audited, and mutating tools support dry-run.
- When to use it
- Useful when you want an assistant to answer business-intelligence questions over KPI data, or when you want to expose your own Postgres or HTTP-backed tools to an MCP client with typed effects, policy gating and an audit trail.
- Requirements
- Runs locally over stdio, typically via uvx or pip install of the agentkit-mcp package (Python). Optional POSTGRES_URL for your own KPI tables; bundled seed data is used when unset. Write and destructive tools need AGENTKIT_ALLOW_WRITES and a human-held AGENTKIT_APPROVAL_TOKEN. The bundled LLM workflow and demos need provider API keys such as GROQ_API_KEY, ANTHROPIC_API_KEY or OPENAI_API_KEY.
Installation
In SourceWeft
- Open Agentkit in the dashboard and add it to a workspace.
- Enable the server for the chats that should use its tools.
Desktop only via STDIO. STDIO servers start a local process, so they need the SourceWeft desktop host.
Other MCP clients
Follow the launch instructions in the repository.
README
AgentKit — A Governed MCP Tool Server
[CI] [License: AGPL v3] [AgentKit MCP server – quality score on Glama] [Live App] [Research] [Benchmarks] [Guide]
An MCP server where tools are declarative, effects are typed, and every action is policy-gated and audited. It works with any MCP client (Claude Desktop, Cursor, LangGraph, Claude Agent SDK, CrewAI).
Live Application: agentkit.ysiddo-ai-projects.app.
- Research Background:
RESEARCH.md/ Online Research Documentation - Empirical Benchmarks:
BENCHMARK.md/ Online Benchmark Dashboard - User Guide: Online User Guide
- Self-Hosting Guide:
SELF_HOSTING.md
Three things distinguish it from a typical MCP server:
- Declarative tools. Define tools in YAML over your own Postgres or HTTP API, with no Python and no fork. (docs/REUSE.md)
- Typed effects. Each tool declares an effect (
read,writeordestructive), and tools that mutate data do mutate it. - Guardrails that do not depend on the prompt. Writes are off by default, destructive actions need a human-held approval token the model never sees, every mutating tool supports dry-run, and every call (allowed and denied) is audited. (SECURITY.md)
The bundled business-intelligence tools below are the reference pack. They show the mechanics end to end; they are not the limit of what the server can serve.
What It Does
Reference BI pack (built in):
- 6 core MCP tools:
query_kpis,get_company_health,detect_kpi_anomalies,forecast_metric,list_available_metrics,get_executive_summary— plus any tools loaded from declarative YAML packs (packs/), so the real tool count at runtime is 6 or more, not a fixed number. The bundledannotationspack adds 3 more (list_annotations,annotate_metric,retract_annotation) demonstrating a guarded write/destructive path — see below. - 10 MCP resources:
kpi://{domain}/latestfor each of this project's real seeded domains — Finance, People, Operations, Customer, Engineering, Growth, Logistics, ESG, IT, Security (src/agentkit_mcp/data/seed.py). - 1 reusable prompt:
monthly_executive_briefing
The domain list, tool-pack set, and resource/prompt registration are all derived from the same data this server serves (
src/agentkit_mcp/data/seed.py,packs/*.yaml), not hardcoded, so adding a domain or tool pack extends this list automatically. You can also add your own@mcp.resource/@mcp.promptdecorators. See docs/REUSE.md.
Write and destructive actions. The annotations pack lets an agent record a durable
note on a metric (annotate_metric, effect write) and soft-delete one it got wrong
(retract_annotation, effect destructive, which requires a human-held
AGENTKIT_APPROVAL_TOKEN the model never sees). Both are off by default
(AGENTKIT_ALLOW_WRITES=false). See SECURITY.md
and RESEARCH.md section 2 for the policy-engine model.
Platform capabilities:
- Declarative tool packs — add tools over your own Postgres/HTTP in YAML (
packs/) - Typed effects + policy engine —
GET /api/policypublishes the capability envelope - Audit trail —
GET /api/audit, allowed and denied, with deny reasons - Multi-provider LLM routing incl. self-hosted —
GET /api/llm-routing - LangGraph 3-agent workflow in
workflow.py(Planner → Analyst → Reporter) - Claude Agent SDK demo in
demos/claude_agent_sdk_demo.py - CrewAI demo in
demos/crewai_demo.py - DSPy research scaffold in
research/dspy_experiment.py - 90+ tests across smoke, API, integration, MCP protocol, policy guardrails, and LangGraph workflow
PyPI Package
For an MCP client, uvx can run the published package without a checkout:
Quick Start
Claude Desktop Setup
Add to ~/.config/Claude/claude_desktop_config.json:
MCP_TRANSPORT=stdio is required here — without it mcp_server.py defaults to serving
over SSE (a network port) instead of talking JSON-RPC over the pipes Claude Desktop
spawns it with, and no tools will appear. Local stdio mode doesn't need
MCP_AUTH_TOKEN (the OS process boundary is the auth boundary); that variable only
matters for the SSE/network path.
Multi-Provider LLM Routing
The 3-agent LangGraph workflow (workflow.py) and the demos/research scripts route
each role to its own model via LiteLLM, configured with
plain provider/model strings — no code changes to switch providers:
LLM_REASONING— planner + reporter agents (defaults toanthropic/claude-sonnet-4-6)LLM_DEFAULT— the tool-calling analyst agent (defaults togroq/openai/gpt-oss-120b)LLM_JUDGE— used by the eval suite (defaults toanthropic/claude-haiku-4-5)LLM_LOCAL+INFERENCE_MODE=local— route to a local/self-hosted model (e.g. Ollama) instead of a hosted provider
Set the matching provider API key(s) (GROQ_API_KEY, ANTHROPIC_API_KEY,
OPENAI_API_KEY) for whichever models you reference above. See .env.example.
- Diagnostics: adjust
LOG_LEVELtoDEBUGfor verbose logs. - Telemetry: one anonymous startup ping (service name, version, random install ID; no
prompts, tool calls or application data), on by default for both the MCP console command and the
REST facade.
TELEMETRY_URLredirects it to your own collector;TELEMETRY_OPT_OUT=trueorDO_NOT_TRACK=1disables it. The Claude Desktop snippet above setsTELEMETRY_OPT_OUT.
Restart Claude Desktop, then ask:
- "What's our company health right now?"
- "Forecast revenue for the next 6 months."
- "Are there anomalies in the Finance KPIs?"
LangGraph Workflow
Architecture
The call funnel, policy model, tool packs and design decisions are described in
ARCHITECTURE.md, with an interactive version in the dashboard. The REST
facade (/api/...) exposes the same tools, policy, audit and routing views over HTTP for the
dashboard and ordinary callers. Every configuration variable is described in
.env.example.
Design notes
- One server, two transports. The same tool set is served over stdio (local clients) and SSE (network).
- Capability policy engine. Effects are separated (read, write, destructive) and enforced below the model, independent of the prompt.
- Client coverage. Exercised with Claude Desktop, Cursor and Devin configurations (see the integration guides below).
For the full formalization, literature context, and citation details, see RESEARCH.md.
Benchmark Replication Suite
Run the reproducible benchmark evaluation suites:
Integration Guides (Claude Desktop, Cursor, Devin)
- Claude Desktop: See claude_desktop_config.example.json and docs/INTEGRATION_GUIDE.md
- Cursor IDE: See cursor_mcp.example.json
- Devin AI Agent: See devin_mcp.example.json
Automated client verification:
Support the project
If AgentKit is useful to you, a star on the repository helps other engineers find it, and following @Yacine-ai-tech is the simplest way to hear about new releases. Passing the link to a colleague who has the same problem is just as welcome.
Questions and field notes go to Discussions; reproducible bugs go to Issues.
License & Enterprise Use (Dual-License)
This project is open-source under the AGPL-3.0 License. It is completely free for researchers, students, and open-source hobbyists. Commercial license: see COMMERCIAL.md.
Source: README.md at commit 7b587d8
Tools
0Version history
2- v0.1.18LatestOct 14, 2026
- v0.1.17Oct 13, 2026
Score
50% of the applicable checks met
How complete this listing is, computed from the registry entry, the endpoint and public sources. Not a rating of the server and not a statement that it is safe or working today: reachability is a dated check, and no installs or reviews go into the score.
- Reached in the last 30 days25 pts
Keep the endpoint answering the MCP handshake; SourceWeft probes it every 30 days.
- Auth declared10 pts
Declare the credential headers in the registry entry, or keep the endpoint answering the probe so its auth can be classified.
- Tools listed15 pts
Answer tools/list without a credential, or ship a package that starts in a sandbox without one.
- DescriptionRequired15 pts
- Logo10 pts
- Documentation15 pts
- License10 pts