Skip to content
Prilog / Docs
Tools & agents / MCP reference

MCP reference

Connect to the hosted Prilog MCP endpoint with OAuth and use project-scoped tools to inspect errors, request fixes, and create pull requests.

Connect

The Prilog hosted MCP server uses Streamable HTTP at:

https://prilog.ai/api/mcp

Add this URL to an OAuth-capable remote MCP client, sign in to Prilog, and authorize one organization, selected projects, and the capabilities you need. Use the client's remote MCP connection flow; the endpoint is not a public unauthenticated REST API.

The hosted connector works with existing projects and repositories. Complete repository setup in the dashboard or CLI first. You do not need to run a local MCP server or pass a monitoring DSN.

Authorization

Every tool is limited to the connection's selected projects and scopes:

  • prilog:read — list projects, inspect project status, list and read errors, and read diffs.
  • prilog:ingest — upload supplied telemetry text.
  • prilog:issues — import a public GitHub issue for the connected fork.
  • prilog:fix — request analysis and fix generation.
  • prilog:pr — create a pull request for an existing fix.

Reconnect from your client to add projects or permissions. Revoke access in Prilog Settings → Account → Connected apps.

Read tools

Call list_projects first and use the returned project UUID on every other tool. Do not infer IDs from names or reuse IDs from another connection.

  • list_projects — no arguments. Returns authorized projects and organization identity.
  • get_status — required: project_id. Returns project identity and error/fix counts.
  • list_errors — required: project_id. Optional: status, search, page, page_size. Status is all, pending, processing, completed, failed, or skipped. Pages start at 1; page size defaults to 20 and accepts 1–100.
  • get_error — required: project_id, error_id. Returns the full error and current analysis state.
  • get_diff — required: project_id, error_id. Returns a generated diff or the current analysis state when it is not ready.

Example list_errors arguments, replacing PROJECT_UUID with a returned ID:

{
  "project_id": "PROJECT_UUID",
  "status": "pending",
  "page": 1,
  "page_size": 20
}

Tool results contain http_status and data. Error-list messages longer than 1,000 characters are truncated and marked message_truncated; use get_error for full details.

Write tools

Every write requires project_id and a unique idempotency_key of 8–128 characters, such as a UUID. The requested action also needs these fields:

  • ingest_logs — text; optional filename. Accepts 1 byte to 1 MiB of supplied text. It cannot read a local path or download a remote URL.
  • import_github_issue — issue_url. The issue must be open and public, and match the project's connected fork and upstream base branch.
  • request_fix — error_id. Queues asynchronous analysis following the project's automation settings and billing allowance.
  • create_pull_request — error_id. Creates or returns a PR for an existing generated fix. Review get_diff first and publish only when the user requested it.

Example request_fix arguments:

{
  "project_id": "PROJECT_UUID",
  "error_id": "ERROR_UUID",
  "idempotency_key": "a039ab19-63a8-46ba-b394-5f6052d11137"
}

Generate a new key for a new requested action. Reuse the original key and identical arguments when retrying that same action. Changing arguments with an existing key is rejected. Do not rotate keys to repeat an operation with an uncertain outcome.

Asynchronous workflow

  1. Call list_projects, then list_errors and get_error for the selected project.
  2. Call request_fix if the user requested analysis.
  3. Report the returned error ID and review URL. Check state with get_error; avoid tight polling. The shared skill allows up to six checks about ten seconds apart when waiting is available.
  4. When analysis completes, call get_diff and review the changes.
  5. Call create_pull_request when publication is requested. Return the actual PR URL from data.pr_url, data.resolution_url, or resolution metadata.

An empty diff can mean analysis is pending, processing, failed, skipped, or completed without code changes. An interrupted mutation can require support to reconcile its state; check the project/error before retrying. MCP does not provide merge or deployment tools.