icon for mcp server

Perses MCP

STDIO

Local MCP server enabling LLM hosts to interact with Perses Application.

Perses

MCP Server for Perses

[!WARNING]
This MCP Server is currently in beta. Features and tools may change, and stability is not guaranteed. Feedback and contributions are most welcome!

Overview

The Perses MCP Server is a local Model Context Protocol (MCP) Server that enables the LLM hosts(Claude Desktop, VS Code, Cursor) to interact with the Perses Application in a standardized way.

Fallback image description

Demo

Claude Desktop

https://github.com/user-attachments/assets/87137515-1b45-442d-a4c9-68f460a1ba4c

VS Code with GitHub Copilot

https://github.com/user-attachments/assets/b80c354a-8006-4e1f-b7f4-e123002f7dc3

Usage

Pre-requisites

Obtaining Your Perses Authentication Token

  1. Login to your Perses server using the percli command line tool:
percli login <PERSES_SERVER_URL>
  1. After successful login, retrieve your token:
percli whoami --show-token
  1. Copy the token to use in your MCP server configuration.

Integration with Claude Desktop

To add this MCP server to Claude Desktop:

  1. Create or edit the Claude Desktop configuration file at:

    • macOS: ~/Library/Application Support/Claude/claude_desktop_config.json
    • Windows: %APPDATA%\Claude\claude_desktop_config.json
    • Linux: ~/.config/Claude/claude_desktop_config.json

You can easily access this file via the Claude Desktop app by navigating to Claude > Settings > Developer > Edit Config.

  1. Add the following JSON block to the configuration file:
{ "mcpServers": { "perses-mcp": { "command": "<ABSOLUTE_PATH_TO_PERSES_MCP_BINARY>", "args": [ "--perses-server-url", "<PERSES_SERVER_URL>" ], "env": { "PERSES_TOKEN": "<PERSES_TOKEN>" } } } }
  1. Restart Claude Desktop for the changes to take effect.

Integration with VS Code GitHub Copilot

To integrate the MCP server with VS Code GitHub Copilot, follow these steps:

  1. Open User Settings (JSON) in VS Code:

    • Press Cmd + Shift + P (on macOS) or Ctrl + Shift + P (on other platforms).
    • Type Preferences: Open User Settings (JSON) and select it.
  2. Add the following JSON block to the User Settings (JSON) file:

{ "inputs": [ { "type": "promptString", "id": "perses-token", "description": "PERSES_TOKEN to connect with Perses Application", "password": true } ], "servers": { "perses-mcp": { "command": "<ABSOLUTE_PATH_TO_PERSES_MCP_BINARY>", "args": [ "--perses-server-url", "http://localhost:8080" ], "env": { "PERSES_TOKEN": "${input:perses-token}" } } } }
  1. Optionally, create a file named .vscode/mcp.json in your workspace and add the same JSON block. This allows you to share the configuration with others.

Tools

Projects

ToolDescriptionRequired Parameters
perses_list_projectsList all projects-
perses_get_project_by_nameGet a project by nameproject

Dashboards

ToolDescriptionRequired Parameters
perses_list_dashboardsList all dashboards for a specific projectproject
perses_get_dashboard_by_nameGet a dashboard by name for a projectproject, dashboard

Datasources

ToolDescriptionRequired Parameters
perses_list_global_datasourcesList all global datasources-
perses_list_datasourcesList all datasources for a specific projectproject
perses_get_global_datasource_by_nameGet a global datasource by namedatasource
perses_get_project_datasource_by_nameGet a project datasource by nameproject, datasource

Roles

ToolDescriptionRequired Parameters
perses_list_global_rolesList all global roles-
perses_get_global_role_by_nameGet a global role by namerole
perses_list_global_role_bindingsList all global role bindings-
perses_get_global_role_binding_by_nameGet a global role binding by nameroleBinding
perses_list_project_rolesList all roles for a specific projectproject
perses_get_project_role_by_nameGet a project role by nameproject, role
perses_list_project_role_bindingsList all role bindings for a projectproject
perses_get_project_role_binding_by_nameGet a project role binding by nameproject, roleBinding

Plugins

ToolDescriptionRequired Parameters
perses_list_pluginsList all plugins-

Variables

ToolDescriptionRequired Parameters
perses_list_global_variablesList all global variables-
perses_get_global_variable_by_nameGet a global variable by namevariable
perses_list_variablesList all variables for a specific projectproject
perses_get_project_variable_by_nameGet a project variable by nameproject, variable

License

The code is licensed under an Apache 2.0 license.

Be the First to Experience MCP Now