Plugin MCP server
{
"mcpServers": {
"circulara-plugin": {
"command": "npx",
"args": [
"-y",
"@circulara/plugin@latest"
],
"env": {
"CIRCULARA_BACKEND_URL": "https://...",
"CIRCULARA_TENANT_ID": "<circulara_tenant_id>",
"CIRCULARA_TOKEN": "<circulara_token>",
"CIRCULARA_SEAT_ID": "<circulara_seat_id>",
"CIRCULARA_USER_ID": "<circulara_user_id>",
"CIRCULARA_MASTER_KEY": "<circulara_master_key>"
}
}
}
}{
"mcpServers": {
"circulara-plugin": {
"command": "npx",
"args": [
"-y",
"@circulara/plugin@latest"
],
"env": {
"CIRCULARA_BACKEND_URL": "https://...",
"CIRCULARA_TENANT_ID": "<circulara_tenant_id>",
"CIRCULARA_TOKEN": "<circulara_token>",
"CIRCULARA_SEAT_ID": "<circulara_seat_id>",
"CIRCULARA_USER_ID": "<circulara_user_id>",
"CIRCULARA_MASTER_KEY": "<circulara_master_key>"
}
}
}
}{
"mcpServers": {
"circulara-plugin": {
"command": "npx",
"args": [
"-y",
"@circulara/plugin@latest"
],
"env": {
"CIRCULARA_BACKEND_URL": "https://...",
"CIRCULARA_TENANT_ID": "<circulara_tenant_id>",
"CIRCULARA_TOKEN": "<circulara_token>",
"CIRCULARA_SEAT_ID": "<circulara_seat_id>",
"CIRCULARA_USER_ID": "<circulara_user_id>",
"CIRCULARA_MASTER_KEY": "<circulara_master_key>"
}
}
}
}{
"servers": {
"circulara-plugin": {
"command": "npx",
"args": [
"-y",
"@circulara/plugin@latest"
],
"env": {
"CIRCULARA_BACKEND_URL": "${input:circulara_backend_url}",
"CIRCULARA_TENANT_ID": "${input:circulara_tenant_id}",
"CIRCULARA_TOKEN": "${input:circulara_token}",
"CIRCULARA_SEAT_ID": "${input:circulara_seat_id}",
"CIRCULARA_USER_ID": "${input:circulara_user_id}",
"CIRCULARA_MASTER_KEY": "${input:circulara_master_key}"
}
}
},
"inputs": [
{
"id": "circulara_backend_url",
"type": "promptString",
"description": "Circulara backend url",
"password": true
},
{
"id": "circulara_tenant_id",
"type": "promptString",
"description": "Circulara tenant id",
"password": true
},
{
"id": "circulara_token",
"type": "promptString",
"description": "Circulara token",
"password": true
},
{
"id": "circulara_seat_id",
"type": "promptString",
"description": "Circulara seat id",
"password": true
},
{
"id": "circulara_user_id",
"type": "promptString",
"description": "Circulara user id",
"password": true
},
{
"id": "circulara_master_key",
"type": "promptString",
"description": "Circulara master key",
"password": true
}
]
}{
"mcpServers": {
"circulara-plugin": {
"command": "npx",
"args": [
"-y",
"@circulara/plugin@latest"
],
"env": {
"CIRCULARA_BACKEND_URL": "https://...",
"CIRCULARA_TENANT_ID": "<circulara_tenant_id>",
"CIRCULARA_TOKEN": "<circulara_token>",
"CIRCULARA_SEAT_ID": "<circulara_seat_id>",
"CIRCULARA_USER_ID": "<circulara_user_id>",
"CIRCULARA_MASTER_KEY": "<circulara_master_key>"
}
}
}
}file .mcp.json (in your project root)file claude_desktop_config.jsonfile ~/.cursor/mcp.jsonfile .vscode/mcp.jsonfile ~/.codeium/windsurf/mcp_config.jsoninstall npx -y @circulara/pluginversion 0.1.2
What it does
Circulara Observe is an MCP plugin that meters AI agent token spend and estimates carbon emissions. It integrates with Claude Code to capture API usage through hooks or direct tools, pricing events server-side against a registry, and generating per-user and per-team reports.
- Track token consumption and associated costs across Claude API calls made by agents or applications.
- Estimate carbon emissions from AI model usage using per-model energy and CO2e coefficients from a pricing registry.
- Generate monthly reports and dashboards showing token spend, avoided costs from prompt reuse, and carbon footprint by user, team, or module.
Tools this server exposes
| Tool | Does |
|---|---|
| circulara_report | Retrieve metered usage reports with token counts, estimated costs, and carbon emissions for specified time periods and groupings. |
| circulara_status | Check the current status of token metering and the pricing registry snapshot being used. |
Before you enable it
An MCP server runs with whatever access you give it. Start with a development account rather than production, and check which tools the server exposes before you let an agent call them unattended.