1. Conduid
  2. Developer Tools
  3. Server
MCP server · Developer Tools

Server

MCP Server for Perses

Unclaimed Apache-2.0 last commit 6 months ago devtools
64Good

Scored yesterday · breakdown

About Server

Server is an MCP server published by perses in the Developer Tools category: mCP Server for Perses. It has been installed 0 times through Conduid.

The repository has 23 stars and 6 forks, with the last commit 6 months ago. Six months or more without a commit doesn't mean the server is broken, but check the open issues (0) before depending on it in production.

Install

Install
npx mcp-server

This server has no ConduID identity, so agent calls to it are not receipted. Pin the version you install and review the source before granting it credentials.

Ask AI

Ask AI about Server

Powered by Claude · Grounded in docs

I know everything about Server. Ask me about installation, configuration, usage, or troubleshooting.

Security checks

  • ·README presentNot checked yet.
  • ·License declaredNot checked yet.
  • ·Tests presentNot checked yet.
  • ·Dependencies pinnedNot checked yet.
  • ·No dynamic code executionNot checked yet.
  • !Scoped permissionsDoesn't declare a permission scope. Assume it can do anything its process can.

Releases

v0.2.00.2.0 / 2026-08-28 · 28 Aug 2026Changelog cfbdb1d57edc0d2ef442c63983ebc30201f12f90: build(deps): Bump the gomod group across 1 directory with 2 updates (#83) (@dependabot[bot]) 2e44c8842bd5bbe4e7e0e6992a92a2cfc88c042e: build(deps): Bump docker/login-action from 3 to 4 in…
v0.1.00.1.0 / 2026-03-10 · 10 Mar 2026Changelog 2cd3fa48c91c5d938ad43e263664f528457b6410: chore(goreleaser): enhance changelog (@ibakshay) 74f25a473e0ae1c1073495d390cb626f2b1bdb47: feat: add http streamable server mode (@ibakshay) d496dcabbb1c86c45df8aa22431502fc3a8492d2:…
v0.1.0-beta.20.1.0-beta.2 · 8 Aug 2025Changelog 7d677da56ca21289b6b6ce7e20a177b45d373e30 Add tool call to create a dashboard given a exiting project and a json config for a dashboard ce3a15f0b4431b7a7204abd0f96916941e5b4221 Merge pull request #14 from…
v0.1.0-beta.10.1.0-beta.1 · 15 Jun 2025Changelog 38323a99a79aa5725f067c54b9e0931ab6f2250e Add dark architecture diagram ed3876ed207b9c4b24bbf2254bd9aa4dc14730a5 Create CODE_OF_CONDUCT.md 476455646f39c3ccd942fe3e3b3d011a657555fd Create LICENSE…

README

Overview

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

Demo

OpenCode

https://github.com/user-attachments/assets/03706209-abef-47f2-8067-67c723537750

Getting Started

Prerequisites

  • A running Perses instance
  • The MCP server binary — download from the releases page, extract it, and make it executable:
    chmod +x /path/to/perses-mcp-server
    

1. Create a configuration file

Create a YAML configuration file (e.g., perses-mcp-config.yaml). See Authentication for details on each auth method.

# MCP transport mode: "stdio" or "http"
transport: stdio

# Address to listen on for HTTP transport (e.g., ":8000")
listen_address: ":8000"

# Restrict the server to read-only operations
read_only: false

# Comma-separated list of resources to register (if empty, all resources are registered)
resources: ""

# Perses server connection configuration
perses_server:
  url: "http://localhost:8080"

  # Authentication (choose one method):
  # It is recommended to use environment variables for sensitive values.
  # Refer the "Environment Variables" section.

  # Option 1: Basic authentication (login/password)
  # native_auth:
  #   login: "admin"
  #   password: "password"

  # Option 2: Bearer token (e.g., from `percli whoami --show-token`)
  # authorization:
  #   type: Bearer
  #   credentials: "<YOUR_TOKEN>"
  #   # credentials_file: "/path/to/token/file"  # Alternative: read token from file

  # TLS configuration (optional)
  # tls_config:
  #   ca_file: "/path/to/ca.pem"
  #   insecure_skip_verify: false

[!NOTE] Configuration values are resolved in this order (later wins): built-in defaults < YAML configuration file < environment variables.

Available Resources

The resources field accepts the following resource names (case-insensitive, comma-separated):

Resource Description
dashboard Dashboard management tools
project Project management tools
datasource Project-level datasource tools
globaldatasource Global datasource tools
role Project-level role tools
globalrole Global role tools
rolebinding Project-level role binding tools
globalrolebinding Global role binding tools
variable Project-level variable tools
globalvariable Global variable tools
plugin Plugin tools

Environment Variables

Configuration values in the YAML file can be overridden using environment variables with the PERMCP_ prefix. The variable name is derived by uppercasing each YAML key and joining nested keys with _.

For example, the YAML path perses_server.native_auth.password becomes PERMCP_PERSES_SERVER_NATIVE_AUTH_PASSWORD.

This is particularly useful for sensitive values like passwords and tokens that should not be stored in the config file.

Environment Variable Config Path Description
PERMCP_TRANSPORT transport Transport mode
PERMCP_LISTEN_ADDRESS listen_address HTTP listen address
PERMCP_READ_ONLY read_only Read-only mode
PERMCP_RESOURCES resources Resources to register
PERMCP_PERSES_SERVER_URL perses_server.url Perses server URL
PERMCP_PERSES_SERVER_NATIVE_AUTH_LOGIN perses_server.native_auth.login Basic auth username
PERMCP_PERSES_SERVER_NATIVE_AUTH_PASSWORD perses_server.native_auth.password Basic auth password
PERMCP_PERSES_SERVER_AUTHORIZATION_TYPE perses_server.authorization.type Authorization type (e.g., Bearer)
PERMCP_PERSES_SERVER_AUTHORIZATION_CREDENTIALS perses_server.authorization.credentials Authorization token

For more details about how environment variables override the configuration file, see the Perses Configuration docs.

2. Add the MCP server to your client

Standard config works in most clients:

{
  "mcpServers": {
    "perses-mcp": {
      "command": "<ABSOLUTE_PATH_TO_PERSES_MCP_BINARY>",
      "args": [
        "--config",
        "<ABSOLUTE_PATH_TO_CONFIG_YAML>"
      ]
    }
  }
}

[!TIP] Pass sensitive auth values as environment variables instead of storing them in the config file:

Basic auth: PERMCP_PERSES_SERVER_NATIVE_AUTH_LOGIN and PERMCP_PERSES_SERVER_NATIVE_AUTH_PASSWORD

Bearer token: PERMCP_PERSES_SERVER_AUTHORIZATION_CREDENTIALS

See Environment Variables for the full list.

Add the following to your OpenCode config under mcp. See OpenCode MCP documentation for more details.

{
  "mcp": {
    "perses": {
      "command": [
        "<ABSOLUTE_PATH_TO_PERSES_MCP_BINARY>",
        "--config",
        "<ABSOLUTE_PATH_TO_CONFIG_YAML>"
      ],
      "environment": {
        "PERMCP_PERSES_SERVER_NATIVE_AUTH_LOGIN": "{env:PERMCP_PERSES_SERVER_NATIVE_AUTH_LOGIN}",
        "PERMCP_PERSES_SERVER_NATIVE_AUTH_PASSWORD": "{env:PERMCP_PERSES_SERVER_NATIVE_AUTH_PASSWORD}"
      },
      "enabled": true,
      "type": "local"
    }
  }
}

Use the Claude Code CLI to add the Perses MCP server. See Claude Code MCP documentation for more details.

claude mcp add --transport stdio \
  --env PERMCP_PERSES_SERVER_NATIVE_AUTH_LOGIN=<YOUR_LOGIN> \
  --env PERMCP_PERSES_SERVER_NATIVE_AUTH_PASSWORD=<YOUR_PASSWORD> \
  perses-mcp -- <ABSOLUTE_PATH_TO_PERSES_MCP_BINARY> --config <ABSOLUTE_PATH_TO_CONFIG_YAML>

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 also access this file via Claude > Settings > Developer > Edit Config.

{
  "mcpServers": {
    "perses-mcp": {
      "command": "<ABSOLUTE_PATH_TO_PERSES_MCP_BINARY>",
      "args": [
        "--config",
        "<ABSOLUTE_PATH_TO_CONFIG_YAML>"
      ],
      "env": {
        "PERMCP_PERSES_SERVER_NATIVE_AUTH_LOGIN": "<YOUR_LOGIN>",
        "PERMCP_PERSES_SERVER_NATIVE_AUTH_PASSWORD": "<YOUR_PASSWORD>"
      }
    }
  }
}

Restart Claude Desktop for the changes to take effect.

Add the following to your VS Code MCP config file. See VS Code MCP documentation for more details.

{
  "servers": {
    "perses-mcp": {
      "command": "<ABSOLUTE_PATH_TO_PERSES_MCP_BINARY>",
      "args": [
        "--config",
        "<ABSOLUTE_PATH_TO_CONFIG_YAML>"
      ],
      "env": {
        "PERMCP_PERSES_SERVER_NATIVE_AUTH_LOGIN": "<YOUR_LOGIN>",
        "PERMCP_PERSES_SERVER_NATIVE_AUTH_PASSWORD": "<YOUR_PASSWORD>"
      }
    }
  }
}

Streamable HTTP Mode

The Streamable HTTP mode allows the MCP server to communicate with LLM hosts over HTTP. This is useful for remote hosting or allowing multiple clients to connect to the same server instance.

For more details, see the MCP Protocol Specification docs.

Set transport: http in your configuration file:

transport: http
listen_address: ":8000"
perses_server:
  url: "http://localhost:8080"
  native_auth:
    login: "admin"
    password: "password"

Then point your MCP client to the HTTP endpoint:

{
  "servers": {
    "perses-http": {
      "type": "http",
      "url": "http://localhost:8000/mcp"
    }
  }
}

Authentication

There are two ways to authenticate the MCP server with your Perses instance. Add the relevant block under perses_server in your configuration file.

Basic Authentication (Username/Password)

Use your Perses username and password directly:

native_auth:
  login: "your-username"
  password: "your-password"

Bearer Token (via percli)

  1. Install percli and login to your Perses server:
percli login <PERSES_SERVER_URL>

For example, percli login https://demo.perses.dev

  1. After successful login, retrieve your token:
percli whoami --show-token
  1. Use the token in your configuration file:
authorization:
  type: Bearer
  credentials: "<YOUR_TOKEN>"

[!WARNING] The bearer token automatically expires based on the access_token_ttl setting (default: 15 minutes) of the Perses server. You can change this in the Perses app configuration.

Command-Line Usage

perses-mcp-server --config /path/to/config.yaml
Flag Default Description
--config "" Path to the YAML configuration file
-log.level info Log level (options: panic, fatal, error, warning, info, debug, trace)
-log.format text Log format (options: text, json)
-log.method-trace false Include the calling method as a field in the log

Tools

[!NOTE]
When running in read-only mode (read_only: true in config), only tools that retrieve information are available. Write operations like create_project, create_dashboard, create_global_datasource, update_global_datasource, and create_project_variable are disabled in read-only mode.

Projects

Tool Description Required Parameters
perses_list_projects List all projects -
perses_get_project_by_name Get a project by name project
perses_create_project Create a new project project

Dashboards

Tool Description Required Parameters
perses_list_dashboards List all dashboards for a specific project project
perses_get_dashboard_by_name Get a dashboard by name for a project project, dashboard
perses_create_dashboard Create a dashboard given a project and dashboard configuration project, dashboard

For dashboard configuration, see Perses Dashboards

Datasources

Tool Description Required Parameters Optional Parameters
perses_list_global_datasources List all global datasources - -
perses_list_datasources List all datasources for a specific project project -
perses_get_global_datasource_by_name Get a global datasource by name datasource -
perses_get_project_datasource_by_name Get a project datasource by name project, datasource -
perses_create_global_datasource Create a new global datasource name, type, url display_name, proxy_type
perses_update_global_datasource Update an existing global datasource name, type, url display_name, proxy_type

Roles

Tool Description Required Parameters
perses_list_global_roles List all global roles -
perses_get_global_role_by_name Get a global role by name role
perses_list_global_role_bindings List all global role bindings -
perses_get_global_role_binding_by_name Get a global role binding by name roleBinding
perses_list_project_roles List all roles for a specific project project
perses_get_project_role_by_name Get a project role by name project, role
perses_list_project_role_bindings List all role bindings for a project project
perses_get_project_role_binding_by_name Get a project role binding by name project, roleBinding

Plugins

Tool Description Required Parameters
perses_list_plugins List all plugins -

Variables

Tool Description Required Parameters
perses_list_global_variables List all global variables -
perses_get_global_variable_by_name Get a global variable by name variable
perses_list_variables List all variables for a specific project project
perses_get_project_variable_by_name Get a project variable by name project, variable
perses_create_project_variable Create a project level variable name, project

Local Development

Build from Source

If you want to build the MCP server from source code (for development or contribution purposes), run the following command from the source code root directory:

make build

This creates a bin directory containing the binary named mcp-server. Copy the absolute path to the binary to use in your MCP server configuration.

License

The code is licensed under an Apache 2.0 license.

README mirrored from the source repository yesterday. The original is authoritative.

Questions

About Server

How do I install Server?

Run npx mcp-server, then add the server to your MCP client's configuration. Conduid has recorded 0 installs, so the command is known to work with current clients.

Is Server safe to use with an AI agent?

Its trust score is 64 out of 100 (good). It passes 0 of 1 static security checks; the failures are listed above. It has no ConduID identity yet, so agent calls to it are not receipted.

Is Server still maintained?

Yes — the latest release is v0.2.0 (28 Aug 2026), and the last commit was 6 months ago. The repository has 23 stars and 0 open issues.