MCP reference

LogiKFlow's MCP server lets an agent read a pull request and save its reading order.

Endpointhttps://logikflow.yemzikk.in/mcp
TransportStreamable HTTP (stateless, JSON responses)
AuthorizationOAuth 2.1 with PKCE; scope reviews
Server namelogikflow

Tools

get_ordering_guide

Returns the ordering guide as Markdown. Call it once before saving an order. It takes no input and is read-only.

get_pull_request

Returns a pull request's changed files, the saved order and its version, whether you may change the order, and the review link. Read-only.

InputTypeRequiredDescription
ownerstringyesRepository owner, for example acme
repostringyesRepository name, for example app
numberintegeryesPull request number
include_patchesbooleannoInclude each file's diff. Default false. Each file is capped at 20,000 characters and the response at 400,000.

Result (JSON text):

{
  "reviewUrl": "https://logikflow.yemzikk.in/r/acme/app/pull/123",
  "repository": "acme/app",
  "pullRequest": {
    "number": 123, "title": "Add grouped clipboard", "state": "open",
    "author": "octo", "base": "develop", "head": "clipboard-new", "headSha": "9fce14f", "url": "https://github.com/acme/app/pull/123"
  },
  "canArrange": true,
  "filesTruncatedByGitHub": false,
  "files": [
    { "path": "app/src/main/java/.../ClipboardStorage.kt", "status": "modified", "additions": 79, "deletions": 10 }
  ],
  "currentOrder": null,
  "baseVersion": 0
}

currentOrder, when an order exists, has version, updatedBy, source (web or agent), savedBeforeLatestCommits (true when commits were pushed after it was saved) and sections in the same shape save_reading_order takes. status is GitHub's: added, removed, modified, renamed, copied, changed or unchanged. Renamed files also have previousPath.

save_reading_order

Saves the reading order, replacing the current one. Earlier versions stay in history. Requires write access to the repository.

InputTypeRequiredDescription
ownerstringyesRepository owner
repostringyesRepository name
numberintegeryesPull request number
base_versionintegeryesbaseVersion from get_pull_request; 0 when no order exists
sectionsarrayyes1 to 50 sections, in reading order

Each section:

FieldTypeDescription
titlestring, optionalUp to 200 characters. Omit only for a single untitled group in a tiny pull request.
notestring, optionalUp to 4,000 characters. Backticks render as code.
checksstring[], optionalUp to 20 checklist items, each up to 300 characters
filesarrayFiles in reading order: { "path", "note"?, "checks"?, "focus"? } with the same limits. focus is key, skim or generated.

Example input:

{
  "owner": "acme", "repo": "app", "number": 123, "base_version": 0,
  "sections": [
    {
      "title": "Feature flag and analytics",
      "note": "Everything new is behind `enable_new_clipboard_experience`, off by default.",
      "checks": ["With the flag off, the clipboard page is unchanged"],
      "files": [{ "path": "app/src/main/java/.../RemoteConfigs.kt" }]
    },
    {
      "title": "Grouping model",
      "files": [
        { "path": "app/src/main/java/.../ClipboardListItem.kt" },
        { "path": "app/src/main/java/.../ClipExtractionUtils.kt", "note": "Clips with time 0 are never grouped.", "focus": "key" }
      ]
    }
  ]
}

Result:

{ "saved": true, "version": 1, "reviewUrl": "https://logikflow.yemzikk.in/r/acme/app/pull/123", "sections": 2, "files": 3, "checklistItems": 1 }

A checklist item with the same text in the same section or file keeps its identity across saves, so reviewers' ticks survive a re-arrange.

Errors

Tool errors come back as a result with isError: true and a message the agent can act on. Nothing is saved when a save fails.

SituationMessage starts with
A changed file is missing, unknown or listed twiceThe order must list every changed file exactly once
Someone saved a newer versionConflict: … saved version N
No write access… doesn't have write access
Invalid input, such as an empty checklist itemThe order is invalid
Pull request not visibleGitHub says this pull request doesn't exist or this account can't see it
GitHub token expired or revokedGitHub access for this connection has expired
GitHub rate limitGitHub's rate limit was reached

Authorization

LogiKFlow follows the MCP authorization specification.

EndpointPath
Protected resource metadata/.well-known/oauth-protected-resource/mcp
Authorization server metadata/.well-known/oauth-authorization-server
Authorization (consent page)/authorize
Token/oauth/token
Dynamic client registration/oauth/register

Client ID metadata documents are also accepted. Unauthenticated requests to /mcp get 401 with a WWW-Authenticate challenge.

  • Access tokens last up to one hour and are refreshed automatically.
  • Refresh tokens last 30 days from last use and at most 180 days.
  • Rate limit: 120 MCP requests per minute per person.
For LLMs and agents: This page as Markdown llms.txt llms-full.txt