hugoles/langfuse-mcp

πŸ“Š Monitoring
0 Views
0 Installs

πŸ“‡ ☁️ 🏠 - TypeScript MCP server for the Langfuse Public API. 27 read tools covering traces, observations, sessions, scores, score-configs, prompts (with version/label), datasets, dataset items, dataset runs, metrics, models, projects, comments, media, and health. Distributed as npx -y langfuse-mcp with provenance-signed releases.

Quick Install

One-Click IDE Configuration
claude_desktop_config.json
{
  "mcpServers": {
    "hugoles-langfuse-mcp": {
      "command": "npx",
      "args": [
        "-y",
        "hugoles-langfuse-mcp"
      ]
    }
  }
}
Or

Using an AI coding agent (Claude Code, Cursor, etc.)? Copy a ready-made prompt that tells it to fetch the setup instructions and install this server for you.

Documentation Overview

langfuse-mcp

npm version npm downloads CI Node License: MIT

An MCP server that exposes the Langfuse REST API as tools, so Claude (or any MCP client) can query your traces, observations, sessions, scores, prompts, datasets, and metrics during a conversation.

Useful when you want to ask things like:

  • "Why did trace abc123 fail? Walk me through its observations."
  • "List the 5 most recent traces with level=ERROR for user alice@x.com."
  • "Summarize today's generation cost broken down by model."
  • "Show me the production version of prompt customer-support-v2."

…without leaving your assistant.

Requirements

Tools

All tools are read-only and call the Langfuse Public API over HTTPS using your project keys for Basic Auth.

Traces & observations

ToolDescription
listTracesList traces with filters. Returns summary metadata.
getTraceFetch a single trace by id including the full observation tree.
listObservationsList spans, generations, and events with filters.
getObservationFetch a single observation by id.

Sessions

ToolDescription
listSessionsList sessions within a time range.
getSessionFetch a session by id, including its traces.

Scores

ToolDescription
listScoresList scores with filters.
getScoreFetch a single score by id.
listScoreConfigsList score configurations (definitions, ranges, categories).
getScoreConfigFetch a score configuration by id.

Prompts

ToolDescription
listPromptsList prompt definitions, optionally filtered by name, label, or tag.
getPromptFetch a prompt by name, optionally pinned to a specific version or label.

Datasets

ToolDescription
listDatasetsList datasets configured in Langfuse.
getDatasetFetch a dataset by name.
listDatasetItemsList items in a dataset (inputs, expected outputs, metadata).
getDatasetItemFetch a single dataset item by id.
listDatasetRunsList evaluation runs for a dataset.
getDatasetRunFetch a specific dataset run by name.

Metrics, models & misc

ToolDescription
getMetricsRun a custom metrics query (counts, latency, cost, token usage). Pass a JSON query string.
getDailyMetricsDaily aggregated usage / cost / count metrics.
listModelsList models known to Langfuse (for cost / token attribution).
getModelFetch a model definition by id.
listProjectsList projects accessible to the current API key.
listCommentsList comments attached to traces, observations, sessions, or prompts.
getCommentFetch a single comment by id.
getMediaFetch metadata for a media attachment (image, audio, file).
getHealthPing the Langfuse public health endpoint β€” useful for credential validation.

Install

Zero install with npx:

npx -y langfuse-mcp

Or install globally:

npm i -g langfuse-mcp
langfuse-mcp --version

Configuration

The server reads three environment variables:

VariableRequiredDescription
LANGFUSE_PUBLIC_KEYyesProject public key (pk-lf-…).
LANGFUSE_SECRET_KEYyesProject secret key (sk-lf-…).
LANGFUSE_BASE_URLyese.g. https://cloud.langfuse.com (EU) or https://us.cloud.langfuse.com (US) or your self-hosted URL.
LANGFUSE_ENV_FILEnoOptional path to a .env file to load instead of ./.env.

Where do I get my keys? In the Langfuse UI: Settings β†’ API Keys β†’ Create new API keys. Keys are scoped to a single project and a single region (EU vs US are separate accounts β€” match your LANGFUSE_BASE_URL to the region you created the keys in).

If a .env file exists in the working directory it will be loaded automatically. See .env.example for a starter file.

Use with Claude Desktop

Edit claude_desktop_config.json:

  • macOS: ~/Library/Application Support/Claude/claude_desktop_config.json
  • Windows: %APPDATA%\Claude\claude_desktop_config.json
  • Linux: ~/.config/Claude/claude_desktop_config.json
{
  "mcpServers": {
    "langfuse": {
      "command": "npx",
      "args": ["-y", "langfuse-mcp"],
      "env": {
        "LANGFUSE_PUBLIC_KEY": "pk-lf-…",
        "LANGFUSE_SECRET_KEY": "sk-lf-…",
        "LANGFUSE_BASE_URL": "https://cloud.langfuse.com"
      }
    }
  }
}

Restart Claude Desktop after editing. The MCP server icon should appear in the chat input.

Use with Claude Code

Project-level (./.mcp.json):

{
  "mcpServers": {
    "langfuse": {
      "command": "npx",
      "args": ["-y", "langfuse-mcp"],
      "env": {
        "LANGFUSE_PUBLIC_KEY": "pk-lf-…",
        "LANGFUSE_SECRET_KEY": "sk-lf-…",
        "LANGFUSE_BASE_URL": "https://cloud.langfuse.com"
      }
    }
  }
}

User-level config lives at ~/.claude.json and uses the same shape.

Use with Cursor

Project-level: .cursor/mcp.json. User-level: ~/.cursor/mcp.json.

{
  "mcpServers": {
    "langfuse": {
      "command": "npx",
      "args": ["-y", "langfuse-mcp"],
      "env": {
        "LANGFUSE_PUBLIC_KEY": "pk-lf-…",
        "LANGFUSE_SECRET_KEY": "sk-lf-…",
        "LANGFUSE_BASE_URL": "https://cloud.langfuse.com"
      }
    }
  }
}

Use with Cline (VS Code)

In VS Code settings (settings.json):

{
  "cline.mcpServers": {
    "langfuse": {
      "command": "npx",
      "args": ["-y", "langfuse-mcp"],
      "env": {
        "LANGFUSE_PUBLIC_KEY": "pk-lf-…",
        "LANGFUSE_SECRET_KEY": "sk-lf-…",
        "LANGFUSE_BASE_URL": "https://cloud.langfuse.com"
      }
    }
  }
}

Use with Continue

In ~/.continue/config.json:

{
  "mcpServers": [
    {
      "name": "langfuse",
      "command": "npx",
      "args": ["-y", "langfuse-mcp"],
      "env": {
        "LANGFUSE_PUBLIC_KEY": "pk-lf-…",
        "LANGFUSE_SECRET_KEY": "sk-lf-…",
        "LANGFUSE_BASE_URL": "https://cloud.langfuse.com"
      }
    }
  ]
}

Use with Windsurf

In Windsurf's MCP settings, add:

{
  "mcpServers": {
    "langfuse": {
      "command": "npx",
      "args": ["-y", "langfuse-mcp"],
      "env": {
        "LANGFUSE_PUBLIC_KEY": "pk-lf-…",
        "LANGFUSE_SECRET_KEY": "sk-lf-…",
        "LANGFUSE_BASE_URL": "https://cloud.langfuse.com"
      }
    }
  }
}

Use with any other MCP client

The server speaks MCP over stdio. Any MCP client can launch it as a subprocess:

LANGFUSE_PUBLIC_KEY=pk-lf-… \
LANGFUSE_SECRET_KEY=sk-lf-… \
LANGFUSE_BASE_URL=https://cloud.langfuse.com \
npx -y langfuse-mcp

Try it

Once wired up, ask your assistant things like:

  • "Use the getHealth tool to confirm langfuse-mcp is connected."
  • "List the 5 most recent traces with level=ERROR."
  • "Show me trace abc123 with all its observations."
  • "What scores did user alice@example.com receive this week?"
  • "Get the production version of prompt customer-support."
  • "List dataset runs for eval-2026-q1 and tell me which one had the highest accuracy score."

Troubleshooting

401 Unauthorized on the first call

  • Wrong region: Langfuse Cloud EU and US are separate accounts. Make sure LANGFUSE_BASE_URL matches the region where you created the keys (https://cloud.langfuse.com for EU, https://us.cloud.langfuse.com for US).
  • Quoted keys in .env: this server strips surrounding quotes, but a stray space can still break Basic Auth. Re-paste the key.
  • Use getHealth first to confirm credentials before running other tools.

npx keeps using an old version

npx -y langfuse-mcp@latest

npx caches packages aggressively. The @latest suffix forces a refresh.

LANGFUSE_BASE_URL must be a full URL error

The most common cause is a missing scheme. Use https://cloud.langfuse.com, not cloud.langfuse.com.

Self-hosted Langfuse

Use the full base URL of your deployment without a trailing slash or path. Example: https://langfuse.mycompany.internal. The server normalizes a single trailing slash, but anything else (/api, /public) will break path joining.

MCP server icon doesn't appear in Claude Desktop

  • Check the Claude Desktop log: ~/Library/Logs/Claude/mcp*.log (macOS) or %APPDATA%\Claude\Logs\ (Windows). The server writes a langfuse-mcp v… connected line to stderr on success.
  • Make sure Node 20+ is on your PATH (Claude Desktop uses your login shell PATH).
  • Quit Claude Desktop fully (not just close the window) and relaunch.

Cryptic ERR_REQUIRE_ESM / Unexpected token on startup

Your Node version is too old. This package requires Node β‰₯ 20. Run node --version and upgrade if needed (e.g. via nvm).

Development

git clone https://github.com/hugoles/langfuse-mcp.git
cd langfuse-mcp
npm install
cp .env.example .env       # macOS/Linux
copy .env.example .env     # Windows cmd
npm run dev                # tsx src/index.ts (no build step)

Other scripts:

ScriptWhat it does
npm run buildCompile TypeScript to dist/.
npm startRun the built server.
npm run typechecktsc --noEmit.
npm run lintESLint.
npm run format / npm run format:checkPrettier write / check.
npm testVitest.

Contributing

See CONTRIBUTING.md. Bug reports and PRs are welcome β€” please run npm run typecheck && npm run lint && npm test locally before opening one.

Security

Found a vulnerability? Please report it privately as described in SECURITY.md. Do not open a public issue.

License

MIT Β© Hugoles.

Related MCP Servers

aayushmdesai/mcp-dotnet-diagnostics

🏠 🍎 🐧 - Live .NET runtime diagnostics for AI assistants. Ask Claude to diagnose memory leaks, GC pressure, LOH fragmentation, and thread starvation in any running .NET process β€” no code changes required. Install: dotnet tool install -g mcp-dotnet-diagnostics

πŸ“Š Monitoring0 views
adanb13/cirdan

🐍 🏠 🍎 πŸͺŸ 🐧 - AI infrastructure cartographer & MCP server: fingerprints, graphs, and watches the live infrastructure an agent can reach (Docker, Kubernetes, cloud, IaC) and detects incidents.

πŸ“Š Monitoring0 views
agentkitai/agentlens

πŸ“‡ 🏠 ☁️ 🍎 πŸͺŸ 🐧 - Tamper-evident observability for AI agents: a SHA-256 hash-chained audit log with chain verification and signed export (EU AI Act Art. 12). Instrument any agent with zero code via npx -y @agentlensai/mcp; also ingests OpenTelemetry GenAI traces.

πŸ“Š Monitoring0 views
alilxxey/openobserve-community-mcp

🐍 🏠 🍎 πŸͺŸ 🐧 - Read-only MCP server for OpenObserve Community Edition via REST API. Search logs, traces, stream schemas, and dashboards without requiring the Enterprise license.

πŸ“Š Monitoring0 views

Engagement

Views
0
Installs
0
Upvotes
0

Views and upvotes are unique per visitor network (hashed IP). Installs count copy actions.

Status

Health: Not checked yet

We have not completed a health check for this listing yet.

No check timestamp yet.

Unclaimed listing (imported or pending owner verification). Claim it β†’
β˜… Spotlight Slot

Feature Your MCP Server

Get maximum visibility for your server across our directory, search results, and detail pages.

Spotlight Your Server

Own this project?

This directory is pre-filled from public sources. Claim via GitHub README, site badge, or DNS TXT to get the verified badge and attach your website.

Claim this listing

Promote this listing

Optional paid placement. Free listings stay free forever.

Share & Embed

Add our SVG badge (dark/light directory styles) or embeddable widget to your site.