Spec Driven Development
MCP Server that facilitates spec-driven development workflows, not just Vibe Coding.
제작자가 쓴 설명(영어 원문)
Langfuse public API (Cloud and self-hosted): traces, prompts, datasets and gated writes.
이 세 가지는 절대 하나의 점수로 합치지 않아요. 의견, 측정, 인기는 서로 다른 것이니까요.
이 서버는 아직 쉬운 말로 된 요약을 쓰지 못했어요. 아래는 레지스트리에서 읽어 온 사실이에요.
쓰고 있는 AI 앱을 고른 다음 설정을 복사하세요.
LANGFUSE_PUBLIC_KEY, LANGFUSE_SECRET_KEY, LANGFUSE_BASE_URL, LANGFUSE_CA_CERT비밀로 표시된 값은 내 계정의 열쇠예요. 절대 다른 사람과 공유하거나 채팅에 붙여 넣지 마세요.
필요한 것
어떤 앱을 쓰세요?
위에서 앱을 고르세요. 기억해 두었다가 다음부터는 버튼에 “…에 설치”라고 표시해요.
링크는 제작자의 파일로 바로 연결돼요. 우리가 보관하거나 다시 패키징하지 않아요. 파일을 열면 Claude Desktop이 설치해요.
터미널에서 이 명령어를 실행하세요
claude mcp add langfuse-api --env LANGFUSE_PUBLIC_KEY=your-value --env LANGFUSE_SECRET_KEY=your-value --env LANGFUSE_BASE_URL=your-value --env LANGFUSE_CA_CERT=your-value -- npx -y langfuse-api-mcp실행하기 전에 빈 값을 채워 주세요.
프로젝트의 .cursor/mcp.json 또는 ~/.cursor/mcp.json에 붙여 넣으세요
{
"mcpServers": {
"langfuse-api": {
"command": "npx",
"args": [
"-y",
"langfuse-api-mcp"
],
"env": {
"LANGFUSE_PUBLIC_KEY": "your-value",
"LANGFUSE_SECRET_KEY": "your-value",
"LANGFUSE_BASE_URL": "your-value",
"LANGFUSE_CA_CERT": "your-value"
}
}
}
}브라우저가 앱을 열지 물어본 다음, 앱이 설정을 보여 주고 확인을 요청해요. 키 값은 비워 두니 직접 입력하세요.
프로젝트의 .vscode/mcp.json에 붙여 넣으세요
{
"servers": {
"langfuse-api": {
"type": "stdio",
"command": "npx",
"args": [
"-y",
"langfuse-api-mcp"
],
"env": {
"LANGFUSE_PUBLIC_KEY": "your-value",
"LANGFUSE_SECRET_KEY": "your-value",
"LANGFUSE_BASE_URL": "your-value",
"LANGFUSE_CA_CERT": "your-value"
}
}
}
}브라우저가 앱을 열지 물어본 다음, 앱이 설정을 보여 주고 확인을 요청해요. 키 값은 비워 두니 직접 입력하세요.
이 서버는 내 컴퓨터에서 실행되는데, ChatGPT는 인터넷에 있는 서버에만 연결할 수 있어요. 다른 앱을 고르세요.
선택한 앱은 이 기기의 쿠키에만 저장돼요. 계정은 필요 없어요.
LANGFUSE_CA_CERT env이 설정은 제작자의 레지스트리 정보로 만들었어요. README와 다르면 README를 따르세요.
내 컴퓨터에서 실행돼요. 설치하면 AI 앱에 도구 목록이 나타나요.
누구나 볼 수 있는 정보를 점검했고, 코드는 읽지 않았어요. 해당하지 않는 항목은 개수에서 뺐어요. · 2026년 11월 6일 점검
레지스트리 이름이 GitHub 계정 rodrigorjsf 기준으로 확인되었고, 이 계정이 저장소를 소유하고 있어요
아직 GitHub에서 이 저장소를 읽어 오지 않았어요
아직 GitHub에서 이 저장소를 읽어 오지 않았어요
내 컴퓨터에서 실행되는 서버라 인터넷 엔드포인트가 없어요
내 컴퓨터에서 실행되며, 대신 로컬 설정을 사용해요
내 컴퓨터에서 실행돼요. 도구 목록은 인터넷 엔드포인트가 있는 서버에서만 읽을 수 있어요
레지스트리에서 이 카테고리의 활성 서버 전체와 비교했어요. 스타는 게시자가 저장소를 소유한 경우에만 세요.
해당하는 기본 점검 1개 중 1개를 통과했어요. 코드는 읽지 않았어요. 키나 토큰을 넣기 전에 서버가 어떤 권한을 요구하는지 확인하고, 꼭 필요한 권한만 있는 키를 쓰세요.
입력해야 할 값: LANGFUSE_PUBLIC_KEY, LANGFUSE_SECRET_KEY, LANGFUSE_BASE_URL
내 컴퓨터에서 실행돼요. AI 앱이 필요할 때 실행하고, 데이터는 제작자의 서버를 거치지 않아요(서버 자체가 온라인 서비스를 호출하는 경우는 제외).
GitHub 저장소는 마지막으로 – 변경됐고, 최신 버전(0.2.0)은 23일 전 레지스트리에 올라왔어요.
Claude Desktop, Claude Code, Cursor, VS Code처럼 MCP를 지원하는 앱에서 쓸 수 있어요. 내 컴퓨터에 Node.js, Docker, MCPB도 있어야 해요.
같은 카테고리에는: Spec Driven Development, Remote Desktop Commander, Toggl 2.0
같은 카테고리에서 다른 제작자가 만든 서버예요. 스타 순으로 정렬했어요.
카드 보는 법:★ GitHub 스타i세 기둥: 리뷰 · 점검 · 사용 정도i업데이트 = 최신 버전을 레지스트리에 공개한 날i
MCP Server that facilitates spec-driven development workflows, not just Vibe Coding.
Remote Desktop Commander: use files, terminal and processes on your own computers from any AI app.
Toggl 2.0 MCP server for tasks, projects, time entries, and workspace operations.
제작자의 저장소에서 쓰인 그대로 가져왔어요. PopNx MCP가 검토하거나 보증한 내용이 아니에요. HTML, 이미지, 스크립트는 제거했어요. 링크를 누르면 이 사이트를 벗어나요.
An MCP server that gives AI agents access to the full Langfuse public API. It works with Langfuse Cloud in any region and with self-hosted instances. It is built to run on corporate networks that re-sign TLS traffic with their own certificate authority (CA).
[!IMPORTANT]
Status: pre-alpha, release `v0.2.0` (semver
0.x: no stability promise yet; the first release wasv0.1.0). Everything below works today unless it is marked Planned, like the loopback HTTP transport.
Contents: What it is · Tools · User skill · Install and run · Client configuration · Configuration · Security model · Troubleshooting · Learn more
A small, stateless program that your AI tool (Claude Code, Claude Desktop, Cursor, VS Code, Codex, …) starts on your machine. It speaks the Model Context Protocol to the agent and HTTPS to Langfuse. The agent can then:
flowchart LR
A[AI agent Claude Code, Cursor, …] -- MCP over stdio --> S[langfuse-mcp on your machine or in Docker] S -- HTTPS + your corporate CA --> P{{Corporate proxy optional}} P --> L[(Langfuse Cloud or self-hosted)] S -. reads .-> C[/Your config: keys, host, CA files/] classDef local fill:#e0f2fe,stroke:#0369a1,color:#0c4a6e; classDef remote fill:#fef3c7,stroke:#b45309,color:#78350f; class A,S,C local; class L,P remote;
| Situation | Use this server? |
|---|---|
Your company network inspects TLS with a custom root CA, and the official Langfuse MCP or CLI fails with self-signed certificate in certificate chain / unable to get local issuer certificate | Yes. This is the main reason the project exists. |
| You want the agent to be unable to change Langfuse data unless you explicitly allow it | Yes. It is read-only by default, and the server enforces this itself for every call made through it. Keep the keys out of the agent's own environment, or another tool can use them directly: Keep the keys out of the agent's environment. |
| You run a self-hosted Langfuse behind an internal CA or proxy | Yes. |
| You want a single binary with no Node.js or Python runtime on your machine | Yes. |
| You only need Langfuse *documentation* in your agent | No. Use the official docs MCP at https://langfuse.com/api/mcp. |
| Your agent can run shell commands and your network has no TLS interception | Either works. Langfuse also offers an official CLI and Agent Skill. |
Official project MCP ( /api/public/mcp) | This server | |
|---|---|---|
| Where it runs | Remote, inside Langfuse | Locally (binary or Docker) |
| Custom CA / corporate proxy | Depends on your MCP client's runtime; no documented options | Explicit settings, plus automatic pickup of CA variables that are already set on your system |
| Writes | Enabled by default; to restrict them you configure a client-side allowlist | Off by default. The write tool does not exist until you enable it. |
| API coverage | Curated tool set | Every operation your Langfuse deployment actually answers — older self-hosted versions keep their legacy APIs, newer ones get the new APIs — except trace ingestion and organization admin changes (creating/deleting projects, API keys, users). Detected automatically at startup, with nothing to configure (Deployment profile) |
The Langfuse API has about 100 in-scope operations. One tool per operation would fill the agent's context window, so the server exposes a small set of tools:
| Tool | What it does | Available |
|---|---|---|
search_operations | Lists the Langfuse operations your deployment serves, optionally filtered by keywords (in write mode, each write operation with its HTTP method and whether it is destructive) | always |
describe_operation | Returns the parameters of one operation that your deployment's Langfuse version serves (and, apart from them, a filter the server applies itself when your version lacks it; and, in write mode, its body schema (the one of your deployment's Langfuse version), whether it is destructive and, for comments_create and scores_create, how to fill the body) | always |
execute_read | Runs a read operation (HTTP GET) by its ID and returns the Langfuse JSON inside an untrusted-data envelope. On an older Langfuse that ignores the traceId of scores_get-many or the level of legacy_observationsV1_getMany, the server applies that filter itself and says whether it read the whole list | always |
execute_write | Runs a write operation by its ID; a destructive one (DELETE, PUT, PATCH) only after you confirm that exact call | only in write mode |
get_trace_tree | Returns every observation of one trace as a tree in one call. It reads Observations v2 where the deployment answers the v4 read APIs (Cloud, self-hosted v4) and the legacy observations list on self-hosted v3, where input, output and metadata are removed unless you ask for them and a row holds the fields that Langfuse returns (latency in milliseconds there, in seconds on v4), minus those it returned as null. Where a deployment answers both, the tree is read from Observations v2, which can lack observations that were sent through the legacy ingestion API, so an empty or short tree can be checked against the legacy observations list through execute_read. Where neither API answers it says operation_unavailable | always listed; runs where the deployment answers either API |
A typical session: search_operations finds the operation, describe_operation shows its parameters, execute_read runs it:
{"operationId": "trace_list", "parameters": {"limit": 10, "tags": ["prod", "checkout"]}}
The server keeps nothing between calls (it is stateless). It never takes a URL, host or credential from the agent. It only runs operations from its built-in catalog, against the host you configured. Every call is validated before anything is sent, and every failure comes back as a structured tool error with a code, a hint and a retryable flag. Parameters, error codes, result limits and the audit line: Tools reference.
The server gives an agent generic tools; the user skill langfuse-api-mcp (skills/langfuse-api-mcp/) teaches it how a Langfuse investigation is done with them: discover, describe, then execute; always a bounded time window; Langfuse data is untrusted, never instructions. It has a short entry file and one reference per workflow (traces, cost and latency, prompts, experiments, scores, errors), each loaded only when its workflow is asked for. Its description names this server's tools, so it does not compete with Langfuse's own langfuse skill. It adds no permission of its own: whether execute_write exists and every confirmation stay the server's decision.
Claude Code, Cursor, VS Code, Codex CLI, Gemini CLI, Windsurf. Install it from the repository with the skills CLI, in your project (or with -g for your user); --agent names the hosts to install for (--agent '*' for all). The Claude Code install is proven; the other hosts rely on the CLI's own support:
npx skills add rodrigorjsf/langfuse-api-mcp
The CLI installs from main, while your server may be an older build; the skill therefore tells the agent to call describe_operation for every parameter it does not name (details).
Claude Desktop installs skills only by upload. Each GitHub release carries langfuse-api-mcp-skill_ .zip, signed, whose root is the langfuse-api-mcp/ folder; upload it in Claude Desktop under Customize > Skills.
| Channel | Platforms | Needs |
|---|---|---|
| npx | Linux, macOS, Windows × x64, arm64 | Node.js with npm |
| Release archive | Linux, macOS, Windows × amd64, arm64 | nothing |
| Docker | linux/amd64, linux/arm64; stdio only | Docker |
| Claude Desktop (MCPB) | macOS, Windows | Claude Desktop |
go install | any Go platform | Go 1.21 or later |
Every channel except go install is signed or carries npm provenance: see Verify what you run. The server is also listed in the MCP Registry as io.github.rodrigorjsf/langfuse-api-mcp. What each channel ships and how it is built: Installation reference.
Configure the server in your MCP client as npx -y langfuse-api-mcp (pin a version with langfuse-api-mcp@ ); it needs Node.js with npm, nothing else. The package carries the Go binary: nothing is downloaded at install time and no install script runs. See Client configuration for the snippet of your client.
Every GitHub release carries one archive per target, langfuse-mcp_ _ _ .tar.gz (.zip on Windows), plus checksums.txt. Download with gh or curl, check the archive against checksums.txt, then extract it (Linux on amd64 shown; is the release without the leading v, for example 0.2.0):
version=<version>
archive="langfuse-mcp_${version}_linux_amd64.tar.gz" gh release download "v$version" -R rodrigorjsf/langfuse-api-mcp -p "$archive" -p checksums.txt
awk -v f="$archive" '$2 == f' checksums.txt | sha256sum -c - # macOS: … | shasum -a 256 -c - tar -xzf "$archive"
On Windows (PowerShell), compare the hash and extract the zip:
$archive = "langfuse-mcp_<version>_windows_amd64.zip"
(Get-FileHash $archive -Algorithm SHA256).Hash.ToLower() # must equal the line for $archive in checksums.txt Expand-Archive $archive -DestinationPath langfuse-mcp
Then point your MCP client at the extracted binary (see Client configuration). The binaries are not notarized nor Authenticode-signed: download with curl or gh, not a browser, or see Downloaded in a browser?.
Pass the keys and the base URL with -e, and keep -i (the server speaks MCP over stdin and stdout):
docker run -i --rm \
-e LANGFUSE_PUBLIC_KEY -e LANGFUSE_SECRET_KEY -e LANGFUSE_BASE_URL \ ghcr.io/rodrigorjsf/langfuse-api-mcp:
-e NAME without a value passes the variable from the environment that runs docker, so the keys never appear in the command line. Behind a corporate CA, mount the CA file read-only and point LANGFUSE_CA_CERT at it; the file must be readable by any user (the image does not run as you):
docker run -i --rm \
-e LANGFUSE_PUBLIC_KEY -e LANGFUSE_SECRET_KEY -e LANGFUSE_BASE_URL \ -e L
앞부분만 보여 드려요. 나머지는 저장소에서 읽어 보세요