
Last9 MCP Server
Last9 MCP Server
Installation
Installing for Claude Desktop
Option 1: One-Command Installation
npx mcpbar install last9/last9-mcp-server -c claude
This command will automatically install and configure the Last9 MCP Server MCP server for your selected client.
Option 2: Manual Configuration
View JSON configuration
{
"mcpServers": {
"Last9 MCP Server": {
"type": "stdio",
"command": "/opt/homebrew/bin/last9-mcp",
"env": {
"LAST9_AUTH_TOKEN": "<auth_token>",
"LAST9_BASE_URL": "<last9_otlp_host>",
"LAST9_REFRESH_TOKEN": "<write_refresh_token>"
}
}
}
}
Copy and paste this configuration into your MCP client's configuration file to manually set up this server.
Common MCP clients
claude
- Claude Desktopcursor
- Cursor Code Editorcline
- Cline (VS Code)windsurf
- Windsurf Editorwitsy
- Witsy AI Assistant
Last9 MCP Server
A Model Context Protocol server implementation for Last9 that enables AI agents to seamlessly bring real-time production context — logs, metrics, and traces — into your local environment to auto-fix code faster.
- View demo
- Read our announcement blog post
Status
Works with Claude desktop app, or Cursor, Windsurf, and VSCode (Github Copilot) IDEs. Implements the following MCP tools:
get_exceptions
: Get list of exceptions.get_service_graph
: Get service graph for an endpoint from the exception.get_logs
: Get logs filtered by service name and/or severity level.get_drop_rules
: Get drop rules for logs that determine what logs get filtered out at Last9 Control Planeadd_drop_rule
: Create a drop rule for logs at Last9 Control Plane
Tools Documentation
get_exceptions
Retrieves server-side exceptions over a specified time range.
Parameters:
limit
(integer, optional): Maximum number of exceptions to return. Default: 20.lookback_minutes
(integer, recommended): Number of minutes to look back from now. Default: 60. Examples: 60, 30, 15.start_time_iso
(string, optional): Start time in ISO format (YYYY-MM-DD HH:MM:SS). Leave empty to use lookback_minutes.end_time_iso
(string, optional): End time in ISO format (YYYY-MM-DD HH:MM:SS). Leave empty to default to current time.span_name
(string, optional): Name of the span to filter by.
get_service_graph
Gets the upstream and downstream services for a given span name, along with the throughput for each service.
Parameters:
span_name
(string, required): Name of the span to get dependencies for.lookback_minutes
(integer, recommended): Number of minutes to look back from now. Default: 60. Examples: 60, 30, 15.start_time_iso
(string, optional): Start time in ISO format (YYYY-MM-DD HH:MM:SS). Leave empty to use lookback_minutes.
get_logs
Gets logs filtered by optional service name and/or severity level within a specified time range.
Parameters:
service
(string, optional): Name of the service to get logs for.severity
(string, optional): Severity of the logs to get.lookback_minutes
(integer, recommended): Number of minutes to look back from now. Default: 60. Examples: 60, 30, 15.start_time_iso
(string, optional): Start time in ISO format (YYYY-MM-DD HH:MM:SS). Leave empty to use lookback_minutes.end_time_iso
(string, optional): End time in ISO format (YYYY-MM-DD HH:MM:SS). Leave empty to default to current time.limit
(integer, optional): Maximum number of logs to return. Default: 20.
get_drop_rules
Gets drop rules for logs, which determine what logs get filtered out from reaching Last9.
add_drop_rule
Adds a new drop rule to filter out specific logs at Last9 Control Plane
Parameters:
name
(string, required): Name of the drop rule.filters
(array, required): List of filter conditions to apply. Each filter has:key
(string, required): The key to filter on. Only attributes and resource.attributes keys are supported. For resource attributes, use format: resource.attributes[key_name] and for log attributes, use format: attributes[key_name] Double quotes in key names must be escaped.value
(string, required): The value to filter against.operator
(string, required): The operator used for filtering. Valid values:- "equals"
- "not_equals"
conjunction
(string, required): The logical conjunction between filters. Valid values:- "and"
Installation
You can install the Last9 Observability MCP server using either:
Homebrew
# Add the Last9 tap
brew tap last9/tap
# Install the Last9 MCP CLI
brew install last9-mcp
NPM
# Install globally
npm install -g @last9/mcp-server
# Or run directly with npx
npx @last9/mcp-server
Configuration
Environment Variables
The service requires the following environment variables:
-
LAST9_AUTH_TOKEN
: Authentication token for Last9 MCP server (required) -
LAST9_BASE_URL
: Last9 API URL (required) -
LAST9_REFRESH_TOKEN
: Refresh Token with Write permissions. Needed for accessing control plane APIs (required). -
Signup at Last9 and setup one of the integrations.
-
Obtain
LAST9_BASE_URL
andLAST9_AUTH_TOKEN
from here. -
The Write Refresh Token can be obtained from API Access page.
Usage with Claude Desktop
Configure the Claude app to use the MCP server:
- Open the Claude Desktop app
- Go to Settings, then Developer, click Edit Config
- Open the
claude_desktop_config.json
file - Copy and paste the server config to your existing file, then save
- Restart Claude
code ~/Library/Application\ Support/Claude/claude_desktop_config.json
{
"mcpServers": {
"last9": {
"command": "/opt/homebrew/bin/last9-mcp",
"env": {
"LAST9_AUTH_TOKEN": "<your_auth_token>",
"LAST9_BASE_URL": "<last9_otlp_host>",
"LAST9_REFRESH_TOKEN": "<refresh_token_from_last9_dashboard>"
}
}
}
}
Usage with Cursor
Configure Cursor to use the MCP server:
- Navigate to Settings, then Cursor Settings
- Select MCP on the left
- Click Add new global MCP server at the top right
- Copy and paste the server config to your existing file, then save
- Restart Cursor
{
"mcpServers": {
"last9": {
"command": "/opt/homebrew/bin/last9-mcp",
"env": {
"LAST9_AUTH_TOKEN": "<auth_token>",
"LAST9_BASE_URL": "<last9_otlp_host>",
"LAST9_REFRESH_TOKEN": "<write_refresh_token>"
}
}
}
}
Usage with Windsurf
Configure Windsurf to use the MCP server:
- Open Windsurf
- Go to Settings, then Developer
- Click Edit Config
- Open the
windsurf_config.json
file - Copy and paste the server config to your existing file, then save
- Restart Windsurf
{
"mcpServers": {
"last9": {
"command": "/opt/homebrew/bin/last9-mcp",
"env": {
"LAST9_AUTH_TOKEN": "<auth_token>",
"LAST9_BASE_URL": "<last9_otlp_host>",
"LAST9_REFRESH_TOKEN": "<refresh_token>"
}
}
}
}
Usage with VS Code
Prerequisites:
- VS Code version 1.99 or later
Configure VS Code to use the MCP server:
- Create
.vscode/mcp.json
in your workspace or add to VS Code user settings with the following configuration:
{
"servers": {
"last9": {
"type": "stdio",
"command": "/opt/homebrew/bin/last9-mcp",
"env": {
"LAST9_AUTH_TOKEN": "<auth_token>",
"LAST9_BASE_URL": "<last9_otlp_host>",
"LAST9_REFRESH_TOKEN": "<write_refresh_token>"
}
}
}
}
- Open Chat view (⌃⌘I on macOS, Ctrl+Alt+I on Windows/Linux)
- Select "Agent" mode from dropdown
- The Last9 MCP server will now be available in VS Code
Note: Replace placeholder values (<auth_token>
, <last9_otlp_host>
, and <write_refresh_token>
) with your actual Last9 credentials.
For advanced configuration options and alternative setup methods, see the official VS Code MCP documentation.
Stars
30Forks
2Last commit
4 days agoRepository age
1 monthLicense
Apache-2.0
Auto-fetched from GitHub .
MCP servers similar to Last9 MCP Server:

Stars
Forks
Last commit

Stars
Forks
Last commit

Stars
Forks
Last commit