OPREX MCP Β· v1.3.1

Hubungkan Oprex ke asisten AI Anda

Server Model Context Protocol (MCP) untuk Oprex ALM/SDLC. Beri Claude, ChatGPT, Gemini, atau IDE Anda akses langsung ke projects, issues, requirements, milestones, releases, tests, dan pipelines β€” untuk membaca maupun mengelola, cukup dengan satu API key.

Apa itu Oprex MCP?

MCP adalah standar terbuka yang membuat model AI bisa memanggil "tools" pada layanan eksternal. Oprex MCP mengekspos data SDLC Anda sebagai tools, sehingga asisten AI dapat menjawab pertanyaan seperti "isu open severity tinggi ada berapa?" atau menjalankan aksi seperti "buatkan requirement baru" β€” langsung di dalam workspace Oprex Anda, terikat pada tenant dan izin Anda.

Endpoint: POST https://api.oprex.id/mcp β€” JSON-RPC 2.0 (Streamable HTTP, stateless). Autentikasi: OAuth 2.1 (tanpa API key) atau header Authorization: Bearer oprex_pk_….

Alamat lama https://oprex.id/mcp tetap berfungsi identik β€” tidak perlu mengubah konfigurasi yang sudah jalan.

Yang bisa dilakukan

  • Telusuri projects & groups, resolve path seperti indohrm/enterprise
  • Baca & filter issues, requirements, milestones, releases, specs, tickets, tests, pipelines
  • Buat & ubah issue (bug) dan requirement
  • Lihat coverage matrix (traceability requirementβ†’test)

Aksi tulis butuh API key ber-scope write scope.

Versi & rilis

v1.3.0 Β· saat ini

  • OAuth 2.1 β€” hubungkan Claude.ai/ChatGPT tanpa API key sama sekali (Dynamic Client Registration + PKCE)
  • Halaman Aplikasi Terhubung di Pengaturan untuk melihat & mencabut izin

v1.2.0

  • Notes & Memory: list_notes, create_note, list_memories, get_memory, create_memory, update_memory β€” simpan/baca ringkasan sesi vibe-coding lintas-agent (Claude, Gemini, dll.)
  • Tickets: create_ticket, update_ticket (sebelumnya list-only)
  • update_requirement (sebelumnya create-only)
  • Comments: add_comment, list_comments β€” diskusi di artifact apa pun
  • trigger_autopilot β€” minta AI auto-repair langsung dari bug id (staf Kinexa)

v1.1.0

  • +6 tools: get_project, list_tickets, list_test_cases, list_pipelines, list_release_plans, coverage_matrix
  • Halaman dokumentasi multi-klien (dual EN/ID)

v1.0.0

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

Autentikasi: OAuth atau API key

Ada dua cara menghubungkan klien, pilih sesuai kebutuhan:

  • OAuth 2.1 β€” untuk aplikasi AI yang dipakai orang (Claude.ai, ChatGPT, Gemini). Tidak perlu menempel key sama sekali: klien mendaftar sendiri lewat Dynamic Client Registration, Anda login via SSO Kinexa, lalu menyetujui di layar persetujuan Oprex. Token akses berlaku 1 jam, refresh 30 hari dengan rotasi.
  • API key β€” untuk CI/CD, skrip, dan klien berbasis file konfigurasi (Claude Code, Cursor, VS Code, Gemini CLI). Milik tenant, berlaku sampai dicabut.

Endpoint OAuth (untuk yang ingin memeriksa sendiri): /.well-known/oauth-authorization-server, /.well-known/oauth-protected-resource, /oauth/register, /oauth/authorize, /oauth/token, /oauth/revoke.

1. Buat API key

Buka member.oprex.id/panel/settings/api-keys β†’ buat key. Pilih scope read (aman, hanya baca) atau write. Salin key oprex_pk_… β€” hanya ditampilkan sekali.

Claude Code (CLI)

Jalankan perintah ini di terminal:

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

Claude Desktop

Settings β†’ Developer β†’ Edit Config, lalu tambahkan (memakai bridge mcp-remote untuk jembatan ke server remote):

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

Claude.ai (web) β€” Settings β†’ Connectors

Buka Settings β†’ Connectors β†’ Add custom connector, isi Nama (mis. "Oprex") dan URL server MCP jarak jauh https://api.oprex.id/mcp.

Kosongkan saja OAuth Client ID/Secret β€” Oprex mendukung Dynamic Client Registration, jadi Claude mendaftar sendiri. Setelah disimpan, Claude akan mengarahkan Anda ke halaman login Kinexa lalu ke layar persetujuan Oprex; klik Izinkan dan connector langsung aktif.

Tidak perlu API key sama sekali untuk jalur ini. Izin yang sudah diberikan bisa dilihat dan dicabut kapan saja di Pengaturan β†’ Aplikasi Terhubung di member.oprex.id.

Cursor

Buat ~/.cursor/mcp.json (global) atau .cursor/mcp.json (per-project):

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

VS Code (GitHub Copilot)

Buat .vscode/mcp.json di workspace Anda:

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

Ekstensi Cline / Continue juga mendukung MCP β€” tambahkan URL & header yang sama di setelan MCP-nya.

Google Gemini CLI

Edit ~/.gemini/settings.json:

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

ChatGPT

ChatGPT mendukung MCP lewat Developer Mode / Custom Connectors (Plus/Pro/Enterprise). Masukkan URL https://api.oprex.id/mcp.

UI connector ChatGPT mengutamakan OAuth ketimbang header API-key statis β€” dan itu justru sudah didukung Oprex sekarang: masukkan URL-nya saja, biarkan field OAuth kosong, lalu setujui di layar persetujuan Oprex.

Catatan jujur: kami sudah menguji alur OAuth Oprex end-to-end (registrasi, persetujuan, token, refresh, pencabutan), tapi belum menguji langsung lewat UI ChatGPT. Bila ada kendala, jalur API-key via Agents/Responses API tetap tersedia.

Ollama

Ollama menjalankan model lokal tapi bukan klien MCP sendiri. Pakai aplikasi yang mendukung MCP dengan model Ollama Anda β€” mis. Cline atau Continue di VS Code (arahkan ke model Ollama), atau LibreChat β€” lalu tambahkan Oprex sebagai server MCP di aplikasi itu (URL & header sama seperti di atas).

Untuk klien berbasis stdio, gunakan bridge:

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

Antigravity

Buka Settings β†’ MCP β†’ Add server, pilih tipe HTTP, isi URL https://api.oprex.id/mcp dan header Authorization: Bearer oprex_pk_…. Jika hanya mendukung stdio, pakai konfigurasi bridge mcp-remote seperti pada Claude Desktop.

Xcode

Xcode belum punya klien MCP bawaan. Cara termudah: jalankan agen coding (mis. Claude Code di Terminal, atau Cursor) di folder project Xcode Anda β€” agen itu bisa membaca kode Anda sekaligus memakai Oprex MCP untuk mengelola issue/requirement. Ikuti bagian Claude Code atau Cursor di atas.

Klien MCP lain / bridge universal

Klien MCP apa pun yang mendukung Streamable HTTP: pakai URL + header di atas. Untuk klien yang hanya mendukung stdio, jembatani dengan mcp-remote:

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

Daftar tools

ToolScopeDeskripsi
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).

Keamanan & scope

  • Setiap panggilan terikat ke tenant pemilik API key β€” tak ada akses lintas-tenant.
  • Scope: read (hanya baca), write (buat/ubah). Beri key seminimal mungkin.
  • Cabut key kapan saja di panel bila bocor.
  • Perlakukan key seperti password β€” jangan commit ke repo publik.
  • Untuk OAuth: izin bersifat per-pengguna (anggota tenant lain tidak bisa melihat atau mencabut izin Anda), PKCE S256 wajib, refresh token dirotasi setiap kali dipakai, dan mencabut aplikasi di Pengaturan β†’ Aplikasi Terhubung langsung mematikan seluruh token-nya termasuk refresh token lama.

Masuk direktori connector resmi (Claude/ChatGPT/Gemini)

Ini status jujur, bukan janji β€” kami belum pernah mengajukan Oprex ke direktori resmi mana pun, jadi ini panduan berdasarkan syarat yang diketahui publik, bukan pengalaman langsung.

  1. Kepatuhan protokol β€” sudah terpenuhi: MCP 2025-06-18, Streamable HTTP, tools/list + tools/call standar.
  2. OAuth 2.1 β€” sudah terpenuhi sejak 3 Agustus 2026. Oprex kini menjadi authorization server-nya sendiri: metadata discovery (RFC 8414 & 9728), Dynamic Client Registration (RFC 7591), authorization code + PKCE S256 wajib, refresh token dengan rotasi, dan revocation (RFC 7009). Login tetap lewat SSO Kinexa yang ada β€” Oprex hanya menambah lapisan persetujuan di atasnya.
  3. Kebijakan & keamanan β€” penyedia direktori biasanya mensyaratkan kebijakan privasi publik, deskripsi data yang diakses, dan proses review keamanan/pengajuan resmi (form/proses submission ada di dokumentasi developer masing-masing platform β€” Anthropic, OpenAI, Google β€” cek langsung di sana untuk syarat & langkah terbaru, karena ini bisa berubah dan kami tidak ingin menebak URL yang mungkin sudah usang).

Ringkasnya: penghalang teknis utama sudah hilang. Yang tersisa adalah kebijakan privasi publik dan mengikuti proses pengajuan masing-masing platform.

FAQ

Apakah gratis? Ya, termasuk dalam langganan Oprex Anda.

Bisa dipakai banyak AI sekaligus? Bisa β€” endpoint & key yang sama bekerja di semua klien MCP.

Bagaimana dengan OAuth untuk claude.ai / ChatGPT web? Sudah tersedia β€” cukup masukkan URL server MCP, tanpa API key. Lihat bagian Claude.ai (web) di atas.

Apa bedanya API key dan OAuth? API key cocok untuk CI/CD dan skrip (milik tenant, tidak kedaluwarsa sampai dicabut). OAuth cocok untuk aplikasi AI yang dipakai orang (milik per-user, access token 1 jam, refresh 30 hari dengan rotasi, bisa dicabut di Pengaturan β†’ Aplikasi Terhubung).