Langfuse Prompt Management MCP Server
by gosarikak
README.md
# Langfuse Prompt Management MCP Server
[Model Context Protocol](https://github.com/modelcontextprotocol) (MCP) Server for [Langfuse Prompt Management](https://langfuse.com/docs/prompts/get-started). This server allows you to access and manage your Langfuse prompts through the Model Context Protocol.
## Features
### MCP Prompt
This server implements the [MCP Prompts specification](https://modelcontextprotocol.io/docs/concepts/prompts) for prompt discovery and retrieval.
- `prompts/list`: List all available prompts
- Optional cursor-based pagination
- Returns prompt names and their required arguments, limitation: all arguments are assumed to be optional and do not include descriptions as variables do not have specification in Langfuse
- Includes next cursor for pagination if there's more than 1 page of prompts
- `prompts/get`: Get a specific prompt
- Transforms Langfuse prompts (text and chat) into MCP prompt objects
- Compiles prompt with provided variables
### Tools
To increase compatibility with other MCP clients that do not support the prompt capability, the server also exports tools that replicate the functionality of the MCP Prompts.
- `get-prompts`: List available prompts
- Optional `cursor` parameter for pagination
- Returns a list of prompts with their arguments
- `get-prompt`: Retrieve and compile a specific prompt
- Required `name` parameter: Name of the prompt to retrieve
- Optional `arguments` parameter: JSON object with prompt variables
- `update-prompt`: Create new prompt versions or update existing ones, with production promotion
- Required `name` parameter: Name of the prompt to create or update
- Optional `prompt` parameter: The prompt content (string for text prompts, array of message objects for chat prompts). Required when creating new versions, omit when only updating labels.
- Optional `version` parameter: Specific version number to update labels on. If provided, only labels will be updated. If omitted, creates a new version.
- Optional `type` parameter: Type of prompt ("text" or "chat", defaults to "text")
- Optional `config` parameter: Configuration object for model parameters (e.g., temperature, model name)
- Optional `labels` parameter: Array of labels to assign to this prompt version (e.g., ["staging", "production"])
- Optional `tags` parameter: Array of tags to categorize the prompt
- Optional `promoteToProduction` parameter: Boolean to automatically add "production" label (defaults to false)
## Development
```bash
npm install
# build current file
npm run build
# test in mcp inspector
npx @modelcontextprotocol/inspector node ./build/index.js
```
## Usage
### Step 1: Build
```bash
npm install
npm run build
```
### Step 2: Add the server to your MCP servers:
#### Claude Desktop
Configure Claude for Desktop by editing `claude_desktop_config.json`
```json
{
"mcpServers": {
"langfuse": {
"command": "node",
"args": ["<absolute-path>/build/index.js"],
"env": {
"LANGFUSE_PUBLIC_KEY": "your-public-key",
"LANGFUSE_SECRET_KEY": "your-secret-key",
"LANGFUSE_BASEURL": "https://cloud.langfuse.com"
}
}
}
}
```
Make sure to replace the environment variables with your actual Langfuse API keys. The server will now be available to use in Claude Desktop.
#### Cursor
Add new server to Cursor:
- Name: `Langfuse Prompts`
- Type: `command`
- Command:
```bash
LANGFUSE_PUBLIC_KEY="your-public-key" LANGFUSE_SECRET_KEY="your-secret-key" LANGFUSE_BASEURL="https://cloud.langfuse.com" node absolute-path/build/index.js
```
## Limitations
The MCP Server is a work in progress and has some limitations:
- Only prompts with a `production` label in Langfuse are returned
- All arguments are assumed to be optional and do not include descriptions as variables do not have specification in Langfuse
- List operations require fetching each prompt individually in the background to extract the arguments, this works but is not efficient
This server cannot be deployed
Maintenance
ActivitySlowing
ResponsivenessNo recent community issues