Skip to main content
Periscope exposes a Model Context Protocol (MCP) server that lets you query your DORA metrics, SPACE metrics, and deployment data directly from your AI coding assistant. Instead of switching to the dashboard, ask your AI assistant about your team’s metrics in natural language.

Overview

  • Server URL: https://app.periscope.sh/mcp
  • Protocol: MCP over HTTP (streamable)
  • Authentication: OAuth 2.0 (same login as the dashboard)
  • Available tools: 18 read-only query tools
  • Plan requirement: Business or Enterprise (included in 14-day trial)

Setup

Claude Code

Add Periscope as a remote MCP server:
claude mcp add periscope --transport http https://app.periscope.sh/mcp
The first time you use a Periscope tool, Claude Code will open a browser window for you to sign in. After authenticating, the token is cached for the session.

Cursor

Add the MCP server in your Cursor settings (.cursor/mcp.json):
{
  "mcpServers": {
    "periscope": {
      "url": "https://app.periscope.sh/mcp"
    }
  }
}

Windsurf

Add the server in your Windsurf MCP configuration:
{
  "mcpServers": {
    "periscope": {
      "serverUrl": "https://app.periscope.sh/mcp"
    }
  }
}

OpenCode

Add the MCP server in your opencode.json:
{
  "mcp": {
    "periscope": {
      "type": "remote",
      "url": "https://app.periscope.sh/mcp"
    }
  }
}

Other MCP clients

Any MCP client that supports remote HTTP servers can connect to Periscope. The server supports standard OAuth 2.0 discovery.

Authentication

When your MCP client first calls a Periscope tool:
  1. A browser window opens for you to sign in (same account as the Periscope dashboard)
  2. After authentication, the token is returned to the MCP client
  3. All subsequent tool calls use this token automatically
Every tool call is scoped to your organization. You can only query metrics for the organization you belong to.

Available tools

Periscope provides 18 read-only tools organized by category.

Overview

ToolDescription
pingHealth check — returns “pong” to verify the server is running
get_overview_summaryHigh-level DORA summary: PRs merged, cycle time p50, production deploys, lead time p50, all with period-over-period comparison

DORA metrics

ToolDescription
get_deployment_frequencyDaily deployment counts, success/failure breakdown, environment breakdown, DORA level
get_lead_timePR merge to production time — p50, p75, p95 percentiles with sample PRs
get_change_failure_rateFailed deployment percentage, per-service breakdown, recent failures
get_mttrMean time to recovery — p50, p75, p95 with incident details

SPACE / PR analytics

ToolDescription
get_pr_cycle_timePR open to merge time — p50, p75, p95 with weekly trends
get_throughputWeekly PR merge counts and averages
get_pr_velocityDaily PR merge counts over time
get_contributor_activityPer-contributor PR counts, sizes, cycle times
get_service_healthPer-repository health status (healthy/warning/stale)
get_risk_signalsDetected engineering risks with recommendations
get_combined_activityDaily PRs merged + deployments overlaid

Deployment details

ToolDescription
get_recent_deploymentsList of recent deployments with status, duration, pipeline URL
get_deployment_service_breakdownPer-service deployment stats, failure rates, durations
get_prs_in_deploymentPRs included in specific deployments with lead times
get_slowest_lead_timesPRs with the worst lead times (bottleneck identification)
get_undeployed_prsMerged PRs not yet deployed to production

Common parameters

Most tools accept these parameters:
ParameterTypeOptionsDescription
time_rangestring"7d", "30d", "90d", "all"Time range to analyze
environmentstring"production", "staging", "all"Environment filter (some tools)
limitnumberAny positive integerMax results to return (some tools)
servicestringAny service nameService filter (some tools)

Usage examples

Check overall engineering health

Ask your AI assistant:
“How are our DORA metrics looking for the last 30 days?”
The assistant will call get_overview_summary and summarize your PRs merged, cycle time, deployment count, and lead time with period-over-period comparisons.

Investigate deployment issues

“Which services have the highest failure rate this month?”
The assistant will call get_change_failure_rate and get_deployment_service_breakdown to identify problematic services.

Find undeployed code

“Are there any merged PRs that haven’t been deployed yet?”
The assistant calls get_undeployed_prs to show code that is merged but waiting for a deployment.

Identify team risks

“Are there any risk signals I should know about?”
The assistant calls get_risk_signals to surface bus factor risks, stale services, workload imbalances, and activity anomalies.

Understand a deployment

“What PRs went out in the last production deployment?”
The assistant calls get_prs_in_deployment with a limit of 1 to show the most recent deployment and its associated PRs.
“How has our PR cycle time changed over the last 90 days?”
The assistant calls get_pr_cycle_time with time_range: "90d" and presents the weekly trend data.

Troubleshooting

Ensure you are signed in to the Periscope dashboard and have an active organization. The MCP server uses the same authentication as the web app. Try signing in to the dashboard first, then retry the MCP connection.
Verify that you have GitHub connected and repositories monitored in Settings > Repositories. For DORA metrics, you also need deployment events flowing through the deployment webhook.
The MCP server requires a Business or Enterprise plan. If you are on the Free plan, sending your first deployment event starts a 14-day trial that includes MCP access.
Make sure your MCP client supports remote HTTP servers. Some older MCP clients only support stdio-based servers. Check your client’s documentation for remote server support.

Full tool reference

See the API reference for detailed parameter and response schemas.