OPREX MCP · v1.3.1

Connect Oprex to your AI assistant

A Model Context Protocol (MCP) server for Oprex ALM/SDLC. Give Claude, ChatGPT, Gemini, or your IDE direct access to your projects, issues, requirements, milestones, releases, tests, and pipelines — read and write — with a single API key.

What is Oprex MCP?

MCP is an open standard that lets AI models call "tools" on external services. Oprex MCP exposes your SDLC data as tools, so an AI assistant can answer questions like "how many open high-severity issues?" or take actions like "create a new requirement" — right inside your Oprex workspace, scoped to your tenant and permissions.

Endpoint: POST https://api.oprex.id/mcp — JSON-RPC 2.0 (Streamable HTTP, stateless). Auth: OAuth 2.1 (no API key) or the header Authorization: Bearer oprex_pk_….

The older address https://oprex.id/mcp still works identically — no need to change a configuration that already runs.

What you can do

  • Browse projects & groups, resolve a path like indohrm/enterprise
  • Read & filter issues, requirements, milestones, releases, specs, tickets, tests, pipelines
  • Create & update issues (bugs) and requirements
  • View the coverage matrix (requirement→test traceability)

Write actions require an API key with the write scope.

Version & releases

v1.3.0 · current

  • OAuth 2.1 — connect Claude.ai/ChatGPT with no API key at all (Dynamic Client Registration + PKCE)
  • Connected Apps page in Settings to review & revoke grants

v1.2.0

  • Notes & Memory: list_notes, create_note, list_memories, get_memory, create_memory, update_memory — save/read vibe-coding session summaries across agents (Claude, Gemini, etc.)
  • Tickets: create_ticket, update_ticket (was list-only)
  • update_requirement (was create-only)
  • Comments: add_comment, list_comments — discuss on any artifact
  • trigger_autopilot — request AI auto-repair directly from a bug id (Kinexa staff)

v1.1.0

  • +6 tools: get_project, list_tickets, list_test_cases, list_pipelines, list_release_plans, coverage_matrix
  • Multi-client docs page (dual EN/ID)

v1.0.0

  • Initial release: 12 tools (projects, groups, resolve, issues CRUD, requirements, milestones, releases, specs)
  • Streamable HTTP + API-key auth

Authentication: OAuth or API key

There are two ways to connect a client — pick what fits:

  • OAuth 2.1 — for AI apps a human uses (Claude.ai, ChatGPT, Gemini). No key to paste: the client registers itself via Dynamic Client Registration, you sign in through the Kinexa SSO, then approve on Oprex's consent screen. Access tokens last 1 hour, refresh 30 days with rotation.
  • API key — for CI/CD, scripts, and config-file clients (Claude Code, Cursor, VS Code, Gemini CLI). Tenant-owned, valid until revoked.

OAuth endpoints (if you want to inspect them yourself): /.well-known/oauth-authorization-server, /.well-known/oauth-protected-resource, /oauth/register, /oauth/authorize, /oauth/token, /oauth/revoke.

1. Create an API key

Open member.oprex.id/panel/settings/api-keys → create a key. Choose scope read (safe, read-only) or write. Copy the key oprex_pk_… — shown only once.

Claude Code (CLI)

Run this in your terminal:

claude mcp add --transport http oprex https://api.oprex.id/mcp \
  --header "Authorization: Bearer oprex_pk_XXXXXXXX"

Claude Desktop

Settings → Developer → Edit Config, then add (using the mcp-remote bridge for the remote server):

{
  "mcpServers": {
    "oprex": {
      "command": "npx",
      "args": ["-y", "mcp-remote", "https://api.oprex.id/mcp",
               "--header", "Authorization: Bearer oprex_pk_XXXXXXXX"]
    }
  }
}

Claude.ai (web) — Settings → Connectors

Open Settings → Connectors → Add custom connector, fill in a Name (e.g. "Oprex") and the Remote MCP server URL https://api.oprex.id/mcp.

Leave OAuth Client ID/Secret empty — Oprex supports Dynamic Client Registration, so Claude registers itself. After saving, Claude sends you to the Kinexa login page and then to Oprex's consent screen; click Allow and the connector is live.

No API key is needed for this path at all. Granted access is listed — and revocable any time — under Settings → Connected Apps in member.oprex.id.

Cursor

Create ~/.cursor/mcp.json (global) or .cursor/mcp.json (per-project):

{
  "mcpServers": {
    "oprex": {
      "url": "https://api.oprex.id/mcp",
      "headers": { "Authorization": "Bearer oprex_pk_XXXXXXXX" }
    }
  }
}

VS Code (GitHub Copilot)

Create .vscode/mcp.json in your workspace:

{
  "servers": {
    "oprex": {
      "type": "http",
      "url": "https://api.oprex.id/mcp",
      "headers": { "Authorization": "Bearer oprex_pk_XXXXXXXX" }
    }
  }
}

The Cline / Continue extensions also support MCP — add the same URL & header in their MCP settings.

Google Gemini CLI

Edit ~/.gemini/settings.json:

{
  "mcpServers": {
    "oprex": {
      "httpUrl": "https://api.oprex.id/mcp",
      "headers": { "Authorization": "Bearer oprex_pk_XXXXXXXX" }
    }
  }
}

ChatGPT

ChatGPT supports MCP via Developer Mode / Custom Connectors (Plus/Pro/Enterprise). Enter the URL https://api.oprex.id/mcp.

ChatGPT's connector UI favours OAuth over a static API-key header — which Oprex now supports: just enter the URL, leave the OAuth fields empty, and approve on Oprex's consent screen.

Honest note: we've tested Oprex's OAuth flow end-to-end (registration, consent, token, refresh, revocation), but not yet through ChatGPT's own UI. If you hit a snag, the API-key path via the Agents/Responses API still works.

Ollama

Ollama runs local models but isn't itself an MCP client. Use an MCP-capable app with your Ollama model — e.g. Cline or Continue in VS Code (pointed at an Ollama model), or LibreChat — then add Oprex as an MCP server there (same URL & header as above).

For stdio-based clients, use the bridge:

npx -y mcp-remote https://api.oprex.id/mcp \
  --header "Authorization: Bearer oprex_pk_XXXXXXXX"

Antigravity

Open Settings → MCP → Add server, choose HTTP type, set the URL https://api.oprex.id/mcp and header Authorization: Bearer oprex_pk_…. If only stdio is supported, use the bridge config mcp-remote as in Claude Desktop.

Xcode

Xcode has no built-in MCP client yet. The easiest path: run a coding agent (e.g. Claude Code in Terminal, or Cursor) inside your Xcode project folder — it can read your code and use Oprex MCP to manage issues/requirements. Follow the Claude Code or Cursor sections above.

Any MCP client / universal bridge

Any MCP client supporting Streamable HTTP: use the URL + header above. For stdio-only clients, bridge with mcp-remote:

npx -y mcp-remote https://api.oprex.id/mcp \
  --header "Authorization: Bearer oprex_pk_XXXXXXXX"

Tools reference

ToolScopeDescription
oprex_list_projectsreadList all projects in your Oprex tenant (GitLab-style). Returns id, name, slug, groupId, visibility.
oprex_list_groupsreadList all groups (namespaces) in your Oprex tenant. Returns id, name, path.
oprex_resolve_projectreadResolve a GitLab-style path <group>/<project> to its group + project records. Use to turn a human path like 'indohrm/enterprise' into ids.
oprex_list_issuesreadList issues (bugs) — optionally scoped to a project and filtered by status/severity/text.
oprex_get_issuereadGet a single issue (bug) by id, with full detail.
oprex_create_issuewriteCreate a new issue (bug).
oprex_update_issuewriteUpdate an issue (bug): status, severity, title, description, or which project it belongs to.
oprex_list_requirementsreadList requirements — optionally scoped to a project and filtered by status/type/text.
oprex_create_requirementwriteCreate a new requirement.
oprex_list_milestonesreadList milestones — optionally scoped to a project and filtered by status.
oprex_list_releasesreadList releases (Staging → RC → Stable) — optionally scoped to a project.
oprex_list_specificationsreadList specifications (technical designs) — optionally scoped to a project.
oprex_get_projectreadGet a single project by id, with full detail (visibility, group, git repo, type).
oprex_list_ticketsreadList support/helpdesk tickets — optionally scoped to a project and filtered by status/text.
oprex_list_test_casesreadList test cases (TestLink-style scenarios) — optionally scoped to a project.
oprex_list_pipelinesreadList CI/CD pipelines and their runs — optionally scoped to a project.
oprex_list_release_plansreadList release plans (roadmap of planned releases) — optionally scoped to a project.
oprex_coverage_matrixreadGet the requirement→test coverage matrix for a project (traceability).
oprex_list_notesreadList Notes (short sticky notes) — optionally scoped to a project, filtered by tag/pinned/text. Standalone notes have no sourceType attached.
oprex_create_notewriteCreate a standalone Note (short sticky note, max ~20k chars).
oprex_list_memoriesreadList Memory documents (long-form markdown imported from AI vibe-coding sessions, e.g. Claude Code). scope='personal' is private to the caller; scope='project' is shared with the project team.
oprex_get_memoryreadGet a single Memory document by id, including its full markdown body.
oprex_create_memorywriteCreate a Memory document — save a markdown file/summary from a vibe-coding session (Claude Code etc.) into Oprex so a team can read/discuss it. scope='project' requires projectId.
oprex_create_ticketwriteCreate a support/helpdesk ticket.
oprex_update_ticketwriteUpdate a ticket: status, priority, severity, subject, body, or assignee.
oprex_update_requirementwriteUpdate a requirement: status, title, description, acceptance criteria, type, or priority.
oprex_add_commentwriteAdd a comment to any Oprex artifact (bug, ticket, requirement, test_case, test_plan, test_run, milestone, release, pipeline, project, or specification) — the thread every artifact detail page shows.
oprex_list_commentsreadList the comment thread on any Oprex artifact.
oprex_trigger_autopilotwriteManually trigger Autopilot (AI auto-repair) on a bug: diagnoses the root cause, drafts a fix, opens a PR for human review. NOTE: restricted to Kinexa staff accounts — a tenant/customer API key will get a 403 here even if it works for other tools.
oprex_update_memorywriteUpdate an existing Memory document — append/replace its body, title, or tags (e.g. keep a running session log).

Security & scopes

  • Every call is scoped to the API key's tenant — no cross-tenant access.
  • Scopes: read (read-only), write (create/update). Grant the least scope needed.
  • Revoke a key anytime in the panel if leaked.
  • Treat the key like a password — never commit it to a public repo.
  • For OAuth: grants are per-user (other tenant members can neither see nor revoke yours), PKCE S256 is mandatory, refresh tokens rotate on every use, and revoking an app under Settings → Connected Apps immediately kills all of its tokens including older refresh tokens.

Getting listed in official connector directories (Claude/ChatGPT/Gemini)

This is an honest status, not a promise — we haven't yet submitted Oprex to any official directory, so this is guidance based on publicly known requirements, not first-hand experience.

  1. Protocol compliance — already met: MCP 2025-06-18, Streamable HTTP, standard tools/list + tools/call.
  2. OAuth 2.1 — met as of 3 August 2026. Oprex is now its own authorization server: metadata discovery (RFC 8414 & 9728), Dynamic Client Registration (RFC 7591), authorization code with mandatory PKCE S256, refresh tokens with rotation, and revocation (RFC 7009). Login still goes through the existing Kinexa SSO — Oprex only adds a consent layer on top.
  3. Policy & security — directory providers typically require a public privacy policy, a description of what data is accessed, and a formal security review/submission process (the actual submission form/process lives in each platform's own developer docs — Anthropic, OpenAI, Google — check there directly for the latest requirements & steps, since this can change and we don't want to guess a URL that may be stale).

Bottom line: the main technical blocker is gone. What remains is a public privacy policy and following each platform's own submission process.

FAQ

Is it free? Yes, included with your Oprex subscription.

Can multiple AIs use it at once? Yes — the same endpoint & key work across all MCP clients.

What about OAuth for claude.ai / ChatGPT web? Available now — just enter the MCP server URL, no API key needed. See the Claude.ai (web) section above.

API key vs OAuth — what's the difference? An API key suits CI/CD and scripts (tenant-owned, valid until revoked). OAuth suits AI apps used by a person (per-user, 1-hour access token, 30-day rotating refresh, revocable under Settings → Connected Apps).