Skip to content

MCP Server ​

ccusage includes a built-in Model Context Protocol (MCP) server that exposes usage data through standardized tools. This allows integration with other applications that support MCP.

Starting the MCP Server ​

stdio transport (default) ​

bash
ccusage mcp
# or explicitly (--type stdio is optional):
ccusage mcp --type stdio

The stdio transport is ideal for local integration where the client directly spawns the process.

HTTP Stream Transport ​

bash
ccusage mcp --type http --port 8080

The HTTP stream transport is best for remote access when you need to call the server from another machine or network location.

Cost Calculation Mode ​

You can control how costs are calculated:

bash
# Use pre-calculated costs when available, calculate from tokens otherwise (default)
ccusage mcp --mode auto

# Always calculate costs from tokens using model pricing
ccusage mcp --mode calculate

# Always use pre-calculated costUSD values only
ccusage mcp --mode display

Available MCP Tools ​

The MCP server provides four main tools for analyzing Claude Code usage:

daily ​

Returns daily usage reports with aggregated token usage and costs by date.

Parameters:

  • since (optional): Filter from date (YYYYMMDD format)
  • until (optional): Filter until date (YYYYMMDD format)
  • mode (optional): Cost calculation mode (auto, calculate, or display)

monthly ​

Returns monthly usage reports with aggregated token usage and costs by month.

Parameters:

  • since (optional): Filter from date (YYYYMMDD format)
  • until (optional): Filter until date (YYYYMMDD format)
  • mode (optional): Cost calculation mode (auto, calculate, or display)

session ​

Returns session-based usage reports grouped by conversation sessions.

Parameters:

  • since (optional): Filter from date (YYYYMMDD format)
  • until (optional): Filter until date (YYYYMMDD format)
  • mode (optional): Cost calculation mode (auto, calculate, or display)

blocks ​

Returns 5-hour billing blocks usage reports showing usage within Claude's billing windows.

Parameters:

  • since (optional): Filter from date (YYYYMMDD format)
  • until (optional): Filter until date (YYYYMMDD format)
  • mode (optional): Cost calculation mode (auto, calculate, or display)

Testing the MCP Server ​

Interactive Testing with MCP Inspector ​

You can test the MCP server using the MCP Inspector for interactive debugging:

bash
# Test with web UI (if you have the dev environment set up)
bun run mcp

# Test with the official MCP Inspector
bunx @modelcontextprotocol/inspector bunx ccusage mcp

The MCP Inspector provides a web-based interface to:

  • Test individual MCP tools (daily, monthly, session, blocks)
  • Inspect tool schemas and parameters
  • Debug server responses
  • Export server configurations

Manual Testing ​

You can also manually test the server by running it and sending JSON-RPC messages:

bash
# Start the server
ccusage mcp

# The server will wait for JSON-RPC messages on stdin
# Example: List available tools
{"jsonrpc": "2.0", "id": 1, "method": "tools/list"}

Integration Examples ​

With Claude Desktop ​

Claude Desktop MCP Configuration

To use ccusage MCP with Claude Desktop, add this to your Claude Desktop configuration file:

macOS: ~/Library/Application Support/Claude/claude_desktop_config.jsonWindows: %APPDATA%\Claude\claude_desktop_config.json

json
{
	"mcpServers": {
		"ccusage": {
			"command": "npx",
			"args": ["ccusage@latest", "mcp"],
			"env": {}
		}
	}
}

Using Global Installation ​

If you have ccusage installed globally:

json
{
	"mcpServers": {
		"ccusage": {
			"command": "ccusage",
			"args": ["mcp"],
			"env": {}
		}
	}
}

Custom Configuration ​

You can specify custom Claude data directories and cost calculation modes:

json
{
	"mcpServers": {
		"ccusage": {
			"command": "npx",
			"args": ["ccusage@latest", "mcp", "--mode", "calculate"],
			"env": {
				"CLAUDE_CONFIG_DIR": "/path/to/your/claude/data"
			}
		}
	}
}

After adding this configuration, restart Claude Desktop. You'll then be able to use the ccusage tools within Claude to analyze your usage data.

Available Commands in Claude Desktop ​

Once configured, you can ask Claude to:

  • "Show me my Claude Code usage for today"
  • "Generate a monthly usage report"
  • "Which sessions used the most tokens?"
  • "Show me my current billing block usage"
  • "Analyze my 5-hour block patterns"

Troubleshooting Claude Desktop Integration ​

Configuration Not Working:

  1. Verify the config file is in the correct location for your OS
  2. Check JSON syntax with a validator
  3. Restart Claude Desktop completely
  4. Ensure ccusage is installed and accessible

Common Issues:

  • "Command not found": Install ccusage globally or use the npx configuration
  • "No usage data found": Verify your Claude Code data directory exists
  • Performance issues: Consider using --mode display or --offline flag

With Other MCP Clients ​

Any application that supports the Model Context Protocol can integrate with ccusage's MCP server. The server follows the MCP specification for tool discovery and execution.

Environment Variables ​

The MCP server respects the same environment variables as the CLI:

  • CLAUDE_CONFIG_DIR: Specify custom Claude data directory paths
    bash
    export CLAUDE_CONFIG_DIR="/path/to/claude"
    ccusage mcp

Error Handling ​

The MCP server handles errors gracefully:

  • Invalid date formats in parameters return descriptive error messages
  • Missing Claude data directories are handled with appropriate warnings
  • Malformed JSONL files are skipped during data loading
  • Network errors (when fetching pricing data) fall back to cached data when using auto mode

Released under the MIT License.