Spec Driven Development
MCP Server that facilitates spec-driven development workflows, not just Vibe Coding.
作者による説明(英語の原文)
Push OpenAPI specs, build SDKs in ten languages, publish API docs, and triage production SDK errors.
この3つを1つのスコアにまとめることはしません。意見、測定、人気はそれぞれ別のものだからです。
このサーバーのやさしい解説はまだ書いていません。以下はレジストリから読み取った事実です。
使っているAIアプリを選んで、設定をコピーしてください。
OCTRI_API_KEY, OCTRI_PROJECT_ID, OCTRI_PROFILE, HTTPS_PROXY, NO_PROXY「秘密」と表示された値は、あなたのアカウントの鍵です。絶対に人に教えたり、チャットに貼り付けたりしないでください。
必要なもの
どのアプリを使っていますか?
上でアプリを選んでください。選んだアプリを覚えておくので、次からはボタンに「…にインストール」と表示されます。
Claude Desktop → Settings → Developer → Edit Config を開き、claude_desktop_config.json にこれを貼り付けます
{
"mcpServers": {
"cli": {
"command": "npx",
"args": [
"-y",
"@octri/cli",
"mcp",
"serve"
],
"env": {
"OCTRI_API_KEY": "your-value",
"OCTRI_PROJECT_ID": "your-value",
"OCTRI_PROFILE": "your-value",
"HTTPS_PROXY": "your-value",
"NO_PROXY": "your-value"
}
}
}
}ターミナルでこれを実行します
claude mcp add cli --env OCTRI_API_KEY=your-value --env OCTRI_PROJECT_ID=your-value --env OCTRI_PROFILE=your-value --env HTTPS_PROXY=your-value --env NO_PROXY=your-value -- npx -y @octri/cli mcp serve動かす前に、空欄の値を入力してください。
プロジェクトの .cursor/mcp.json、または ~/.cursor/mcp.json に貼り付けます
{
"mcpServers": {
"cli": {
"command": "npx",
"args": [
"-y",
"@octri/cli",
"mcp",
"serve"
],
"env": {
"OCTRI_API_KEY": "your-value",
"OCTRI_PROJECT_ID": "your-value",
"OCTRI_PROFILE": "your-value",
"HTTPS_PROXY": "your-value",
"NO_PROXY": "your-value"
}
}
}
}ブラウザがアプリを開いてよいか確認し、そのあとアプリが設定を表示して確認を求めます。キーの値は空欄のままなので、自分で入力してください。
プロジェクトの .vscode/mcp.json に貼り付けます
{
"servers": {
"cli": {
"type": "stdio",
"command": "npx",
"args": [
"-y",
"@octri/cli",
"mcp",
"serve"
],
"env": {
"OCTRI_API_KEY": "your-value",
"OCTRI_PROJECT_ID": "your-value",
"OCTRI_PROFILE": "your-value",
"HTTPS_PROXY": "your-value",
"NO_PROXY": "your-value"
}
}
}
}ブラウザがアプリを開いてよいか確認し、そのあとアプリが設定を表示して確認を求めます。キーの値は空欄のままなので、自分で入力してください。
これはパソコンで動くサーバーですが、ChatGPTがつなげるのはインターネット上のサーバーだけです。ほかのアプリを選んでください。
選んだアプリは、この端末のCookieに保存されます。アカウントは不要です。
OCTRI_PROJECT_ID envOCTRI_PROFILE envNO_PROXY envこの設定は、作者のレジストリ登録情報から作成しています。READMEと違う場合は、READMEに従ってください。
パソコンで動くサーバーです。インストールすると、ツール一覧がAIアプリに表示されます。
誰でも見られる情報をチェックしており、コードは読んでいません。当てはまらない項目は数に入れていません。 · 2026年11月6日にチェック
レジストリ名はドメイン octri.dev で確認済みです(レジストリがドメインの所有を確認しています)
このリポジトリはまだGitHubから読み取っていません
このリポジトリはまだGitHubから読み取っていません
これはパソコンで動くため、インターネット上のエンドポイントはありません
パソコンで動き、代わりにローカルの設定を使います
パソコンで動くサーバーです。ツール一覧を読み取れるのは、インターネット上のエンドポイントがある場合だけです
レジストリでこのカテゴリにある有効なすべてのサーバーと比較しています。スターは、公開者がリポジトリの所有者である場合だけ数えます。
当てはまる基本チェック1項目のうち1項目に合格しました。コードは読んでいません。キーやトークンを追加する前に、サーバーがどんなアクセスを求めているかを確認し、必要な権限だけを持つキーを使ってください。
入力が必要なもの:OCTRI_API_KEY, HTTPS_PROXY
あなたのパソコンで動きます。必要なときにAIアプリが起動し、データは作者のサーバーを通りません(サーバー自体がオンラインサービスを呼び出す場合を除きます)。
GitHubリポジトリの最終更新は–、最新バージョン(1.0.6)がレジストリに届いたのは24 日前です。
Claude Desktop、Claude Code、Cursor、VS CodeなどのMCP対応アプリで使えます。パソコンにNode.jsも必要です。
同じカテゴリには:Spec Driven Development, Remote Desktop Commander, LickityClick
同じカテゴリで、ほかの作者が作ったサーバー。スターの多い順。
カードの見方:★ GitHubスターi3つの柱:レビュー · チェック · 利用状況i更新=最新バージョンをレジストリに公開した日i
MCP Server that facilitates spec-driven development workflows, not just Vibe Coding.
Remote Desktop Commander: use files, terminal and processes on your own computers from any AI app.
Create, edit and track LickityClick short links, campaigns and click stats from your AI assistant.
作者のリポジトリから書かれたとおりにコピーしたものです。PopNx MCPは内容を確認・推奨していません。HTML、画像、スクリプトは取り除いています。リンクはこのサイトの外へ移動します。
octri is the command line for your Octri project. It does what the dashboard does: push a spec, build SDKs, publish docs, and work through the errors those SDKs report from production.
Octri takes an OpenAPI spec and gives you a documentation site, client libraries in ten languages, an MCP server, and monitoring for the API behind all of it. See octri.dev.
Node 20 or newer.
npm install -g @octri/cli
octri --help
octri auth login
octri projects use octri specs push ./openapi.yaml
auth login prompts for your email and password, and for your authenticator code if you have two-factor on. projects use with no argument opens a picker.
specs push waits for the pipeline, not the upload. Your spec parses in about a second, then the doc pages, search index and changelog get written behind it. The spinner names the stage it is on.
octri sdk audit # what is costing you, scored
octri sdk build --lang go,typescript --download
In a terminal, sdk build draws a lane per language and repaints it through generating, verifying, packaging, installing, ready. Piped or under CI it prints append-only lines instead, and exits non-zero if any language fails, so it works as a build step with no extra flags.
sdk audit scores the spec and marks which findings the generator can fix on its own. octri sdk audit apply writes one in.
For a look at real generator output without spending a build:
octri sdk preview --lang go
octri sdk preview --lang go --show client.go
octri docs versions publish <specId>
octri docs versions label "Stable" octri docs domain set docs.example.com
docs domain prints the CNAME and TXT records to create, then docs domain verify checks them.
The site's structure is drafted like it is in the API Studio. Redirects, the home page and draft endpoints wait for a publish; nav buttons apply on save:
octri docs redirects add /old-guide /guides/install
octri docs home set octri docs nav publish
octri docs endpoints add POST /refunds --summary "Refund a payment" octri docs endpoints publish
octri docs components push ./components/Banner.jsx octri docs buttons add "Sign up" https://app.example.com --style primary
A component file holds the markup alone: one root element, HTML attribute names (class, not className), and props written as {name}.
The sidebar itself round-trips through a file, and is drafted like the rest:
octri docs nav --json > nav.json
octri docs nav set nav.json octri docs nav publish
Appearance, SEO, social links, page feedback, the API playground and custom code have no draft: each set is live when it returns. Keys are spelled as in the API, @file reads a value from a file, and an empty value clears a link:
octri docs theme set primaryColor=#ff6a00 colorScheme=dark codeTheme=nord
octri docs seo set metaDescription="Payments API reference" indexable=true octri docs socials set github=https://github.com/acme x= octri docs feedback on octri docs playground set enabled=true allowedOrigins=https://acme.com octri docs custom-code set css=@docs.css enabled=true
In Git Bash on Windows, a lone argument starting with / is rewritten into a Windows path before the CLI sees it. Set MSYS_NO_PATHCONV=1, or use PowerShell, for commands that take docs paths.
Reads and triage run on your session, so they need nothing but a login:
octri monitoring summary
octri monitoring issues --status unresolved octri monitoring issue octri monitoring resolve
monitoring issue prints the stack and marks which frames resolved against uploaded source maps. When none of them did, the release those errors came from has no symbols, and the CLI says so.
The two upload commands work differently. They talk to the monitoring service directly with an ingest token, because a CI job has one secret and no way to log in:
# CI
octri monitoring sourcemaps upload ./dist \ --url "$MONITORING_URL" --token "$MONITORING_TOKEN" \ --environment "$MONITORING_ENVIRONMENT" --release "$GIT_SHA"
octri monitoring sourcemaps upload ./dist
Run octri monitoring config for the three values to store as CI secrets. The release you upload under has to equal the release your SDK reports at runtime, or the service has nothing to pair a trace with.
| Group | What | ||||
|---|---|---|---|---|---|
auth | login · logout · whoami · token · profiles | ||||
config | list · set · use · path | ||||
projects | list · show · create · use · current | ||||
specs | list · push · import · status · delete · `convert [import\ | report]` | |||
sdk | languages · operations · `settings get\ | set · validate · audit [apply\ | ignore\ | source] · quickstart [set\ | unset] · preview · build · builds · watch · artifacts · download · retry · publish · repos · stats` |
docs | `pages [generate\ | regenerate\ | publish\ | title] · show · guides · nav · redirects · home · buttons · components · endpoints · versions · domain · changelog` | |
monitoring | status · enable · summary · issues · issue · `resolve\ | ignore\ | reopen\ | comment · logs · traces · performance · releases · alerts · checks · sourcemaps upload · sources upload · config` | |
orgs | list · show · switch · usage · billing · invoices · members · invites | ||||
keys | list · create · revoke | ||||
github | status · connect · sync · auto-sync · `docs [pull\ | sync]` | |||
webhooks | list · events · create · update · test · deliveries · delete | ||||
jobs | list · show | ||||
mcp | tools · permissions [set] · usage · calls · `package [download\ | publish] · serve` |
Run octri --help for one group on its own.
Global flags: --project , --profile , --api-url , --json, --quiet, --plain, --no-color.
| Mode | When | What you get |
|---|---|---|
| Interactive | A terminal | Colour, spinners, live build lanes, tables |
| Plain | Piped, or CI is set | Append-only lines, no escape sequences |
--json | You ask for it | One JSON document on stdout, errors on stderr |
--json is the one to script against:
octri sdk builds --json | jq '.[0].status'
octri monitoring issues --status unresolved --json | jq 'length'
NO_COLOR and FORCE_COLOR are both honoured.
State lives in ~/.octri/config.json, mode 0600, since it holds session tokens. OCTRI_CONFIG_DIR moves it.
Profiles keep environments side by side:
octri config use prod --api-url api.octri.dev
octri config set defaultLanguages go,rust,swift
Every value resolves flag first, then environment, then the stored profile.
| Variable | Effect |
|---|---|
OCTRI_PROFILE | Profile to use |
OCTRI_API_URL | API root (local is shorthand for :3001) |
OCTRI_TOKEN | Bearer token, bypassing the stored session |
OCTRI_API_KEY | API key for the public routes |
OCTRI_PROJECT_ID | Default project |
OCTRI_CONFIG_DIR | Where config and the artifact cache live |
OCTRI_DEBUG | Print stack traces on failure |
The CLI and octri mcp serve read the standard proxy variables, in upper or lower case, with no extra Node flag. https:// requests use HTTPS_PROXY, or HTTP_PROXY when that is the only one set. Hosts listed in NO_PROXY, and their subdomains, connect directly; * turns the proxy off.
export HTTPS_PROXY=http://user:password@proxy.internal:3128
export NO_PROXY=localhost,127.0.0.1,corp.example octri specs push ./openapi.yaml
If the proxy inspects TLS with its own certificate authority, point Node at that CA with NODE_EXTRA_CA_CERTS=/path/to/ca.pem.
MCP clients usually start servers with a minimal environment, so set these in the server's env block rather than relying on your shell.
octri mcp serve
This speaks MCP over stdio and offers the same commands as typed tools. An assistant can push a spec, wait for the build, read the generated Go, and then read the production error that build caused.
To add it to Cursor or VS Code in one click, through npx so no global install is needed:
The server uses the profile from octri auth login, so sign in first, or set OCTRI_API_KEY in its environment. An API key reaches the public routes only: the docs, webhook and MCP-management tools need the signed-in profile. Listed in the official MCP Registry as dev.octri/cli.
// Claude Desktop / Cursor
{ "mcpServers": { "octri": { "command": "octri", "args": ["mcp", "serve"] } } }
Credentials come from your stored profile and the assistant never sees them. Reads are open. The operations you cannot take back are refused unless you start the server with the flag for them:
octri mcp serve --allow-publish # publishing SDKs, your MCP package, or the drafted docs nav
octri mcp serve --allow-delete # deleting specs, components or webhooks
Tool failures come back as tool results rather than protocol errors, so an assistant can read the message and correct itself.
/ws/sdk socket authenticates from a header or cookie, which Node's built-in WebSocket cannot set, and a WebSocket dependency would buy about a second of latency on a build that takes minutes.tar and zip readers, so neither binary needs to be installed. Both refuse entries that would write outside the destination directory.@modelcontextprotocol/sdk is the only runtime dependency. Colour, spinners, progress bars, tables and prompts are all local.| Product | What it does |
|---|---|
| API Studio | Your OpenAPI spec becomes a hosted documentation site with a live request playground, editable page by page. |
| SDK Studio | The same spec becomes client libraries for ten languages, versioned and released together. |
| MCP | Your endpoints and docs become tools an AI assistant can call, generated from the same spec. |
| Monitoring | Errors, traces, uptime and releases for the API, joined to the SDK calls that reached it. |
Node · Python · Go · Ruby · Rust · PHP · Java · Kotlin · Swift · Dart
Documentation · Pricing · Changelog
MIT licensed.