l6e-mcp
Enables AI coding agents to set budgets per task, check costs before expensive operations, and halt when budget is exhausted, with support for calibration and cloud sync.
README
l6e-mcp
l6e makes your AI coding agent cost-efficient.
Set a budget per task. Your agent checkpoints before expensive operations, gets halt signals when it's spending too much, and stops when it's done — not when it runs out of money. Import your billing data and l6e learns your actual cost patterns, so estimates get tighter over time.
No proxy. No SDK changes. Just an MCP server that works with Cursor, Claude Code, and Windsurf.
Dogfooding: docs.l6e.ai is built and maintained using l6e itself.
Quick start
1. Install
pip install l6e-mcp
# or, zero-install:
uvx l6e-mcp
2. Add to your MCP config
Cursor (.cursor/mcp.json):
{
"mcpServers": {
"l6e": {
"command": "uvx",
"args": ["l6e-mcp"]
}
}
}
See docs.l6e.ai/setup for Claude Code and Windsurf configs.
3. Add the enforcement rule
Copy the l6e budget enforcement rule to .cursor/rules/ so your agent knows how to use the budget tools.
That's it — start a session, set a budget, and your agent is cost-aware.
4. (Optional) Connect to the dashboard
Create a free account at app.l6e.ai for session history, spend tracking, and billing import for calibration:
{
"mcpServers": {
"l6e": {
"command": "uvx",
"args": ["l6e-mcp"],
"env": {
"L6E_API_KEY": "sk-l6e-...",
"L6E_CLOUD_SYNC": "1"
}
}
}
}
How it works
l6e sits as an MCP server between your IDE and your agent. At each checkpoint, the agent calls l6e_authorize_call — l6e checks the remaining budget and returns allow or halt.
- allow — proceed; check
budget_pressureto decide how aggressively to economize - halt — budget exhausted, stop the session
Session state is persisted locally in SQLite (~/.l6e/sessions.db). No LLM calls are proxied — l6e only sees the metadata your agent passes at each checkpoint (token estimates, model, stage label). It never sees your prompts, completions, or source code.
Calibration
Out of the box, l6e uses raw token estimates from LiteLLM pricing. These are directionally accurate but can diverge significantly from what your provider actually bills, depending on your model and usage patterns.
Import your billing CSV from Cursor or your LLM provider at app.l6e.ai and l6e computes a personal calibration factor for each model you use. The more sessions you run, the tighter the estimates get.
For manual calibration without cloud sync, add a [calibration] section to ~/.l6e/config.toml:
[calibration]
claude-4-opus = 72.0
claude-4-sonnet = 45.0
claude-3.5-haiku = 12.0
Free vs Pro
| Free | Pro ($15/mo) | |
|---|---|---|
| Budget enforcement | ✓ | ✓ |
| Local session storage | ✓ | ✓ |
| Cloud sync + dashboard | ✓ (90-day history) | ✓ (unlimited) |
| Billing import | ✓ (5/month) | ✓ (unlimited) |
| Per-model calibration | ✓ | ✓ |
| Community baseline factors | ✓ | ✓ |
MCP tools
| Tool | Purpose |
|---|---|
l6e_run_start |
Open a new budget session. Returns session_id. |
l6e_authorize_call |
Gate before sub-agents and stage transitions. Returns allow or halt. Pass check_only=True for a lightweight budget pressure check. |
l6e_record_usage |
Attach exact token counts to a call (optional, improves accuracy). |
l6e_run_end |
Close the session and flush the run log. |
Full tool reference at docs.l6e.ai/tools.
Environment variables
| Variable | Default | Purpose |
|---|---|---|
L6E_API_KEY |
(unset) | API key for cloud sync |
L6E_CLOUD_SYNC |
false |
Set to 1 to enable cloud sync |
L6E_CLOUD_ENDPOINT |
https://api.l6e.ai |
Override the cloud sync endpoint |
L6E_LOG_PATH |
.l6e/runs.jsonl |
Run log path — set to an absolute path |
L6E_SESSION_DB_PATH |
~/.l6e/sessions.db |
Local SQLite database path |
L6E_CONFIG_PATH |
~/.l6e/config.toml |
Config file path |
Known limitations
- Estimate-first by default. Exact accounting requires
l6e_record_usagecalls with actual token counts after each LLM call. Without them, budgets are based on the agent's pre-call estimates. - Local persistence by default. Sessions persist in a local SQLite database. Cloud sync is available with a free account at app.l6e.ai — set
L6E_API_KEYandL6E_CLOUD_SYNC=1to enable.
Links
- docs.l6e.ai — setup guides, tool reference, calibration walkthrough
- app.l6e.ai — dashboard, run history, billing import
- l6e core library — embed budget enforcement in Python agent pipelines
License
MIT
推荐服务器
Baidu Map
百度地图核心API现已全面兼容MCP协议,是国内首家兼容MCP协议的地图服务商。
Playwright MCP Server
一个模型上下文协议服务器,它使大型语言模型能够通过结构化的可访问性快照与网页进行交互,而无需视觉模型或屏幕截图。
Audiense Insights MCP Server
通过模型上下文协议启用与 Audiense Insights 账户的交互,从而促进营销洞察和受众数据的提取和分析,包括人口统计信息、行为和影响者互动。
Magic Component Platform (MCP)
一个由人工智能驱动的工具,可以从自然语言描述生成现代化的用户界面组件,并与流行的集成开发环境(IDE)集成,从而简化用户界面开发流程。
VeyraX
一个单一的 MCP 工具,连接你所有喜爱的工具:Gmail、日历以及其他 40 多个工具。
Kagi MCP Server
一个 MCP 服务器,集成了 Kagi 搜索功能和 Claude AI,使 Claude 能够在回答需要最新信息的问题时执行实时网络搜索。
graphlit-mcp-server
模型上下文协议 (MCP) 服务器实现了 MCP 客户端与 Graphlit 服务之间的集成。 除了网络爬取之外,还可以将任何内容(从 Slack 到 Gmail 再到播客订阅源)导入到 Graphlit 项目中,然后从 MCP 客户端检索相关内容。
Exa MCP Server
模型上下文协议(MCP)服务器允许像 Claude 这样的 AI 助手使用 Exa AI 搜索 API 进行网络搜索。这种设置允许 AI 模型以安全和受控的方式获取实时的网络信息。
mcp-server-qdrant
这个仓库展示了如何为向量搜索引擎 Qdrant 创建一个 MCP (Managed Control Plane) 服务器的示例。
e2b-mcp-server
使用 MCP 通过 e2b 运行代码。