mcp-server

mcp-server

3.4

If you are the rightful owner of mcp-server and would like to certify it and/or have it hosted online, please leave a comment on the right or send an email to henry@mcphub.com.

The Perses MCP Server facilitates interaction between LLM hosts and the Perses Application using the Model Context Protocol.

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.

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 license.