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.
이 세 가지는 절대 하나의 점수로 합치지 않아요. 의견, 측정, 인기는 서로 다른 것이니까요.
이 서버는 아직 쉬운 말로 된 요약을 쓰지 못했어요. 아래는 레지스트리에서 읽어 온 사실이에요.
쓰고 있는 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는 인터넷에 있는 서버에만 연결할 수 있어요. 다른 앱을 고르세요.
선택한 앱은 이 기기의 쿠키에만 저장돼요. 계정은 필요 없어요.
OCTRI_PROJECT_ID envOCTRI_PROFILE envNO_PROXY env이 설정은 제작자의 레지스트리 정보로 만들었어요. README와 다르면 README를 따르세요.
내 컴퓨터에서 실행돼요. 설치하면 AI 앱에 도구 목록이 나타나요.
누구나 볼 수 있는 정보를 점검했고, 코드는 읽지 않았어요. 해당하지 않는 항목은 개수에서 뺐어요. · 2026년 11월 7일 점검
레지스트리 이름이 도메인 octri.dev 기준으로 확인되었어요(레지스트리가 도메인 소유를 확인해요)
아직 GitHub에서 이 저장소를 읽어 오지 않았어요
아직 GitHub에서 이 저장소를 읽어 오지 않았어요
내 컴퓨터에서 실행되는 서버라 인터넷 엔드포인트가 없어요
내 컴퓨터에서 실행되며, 대신 로컬 설정을 사용해요
내 컴퓨터에서 실행돼요. 도구 목록은 인터넷 엔드포인트가 있는 서버에서만 읽을 수 있어요
레지스트리에서 이 카테고리의 활성 서버 전체와 비교했어요. 스타는 게시자가 저장소를 소유한 경우에만 세요.
해당하는 기본 점검 1개 중 1개를 통과했어요. 코드는 읽지 않았어요. 키나 토큰을 넣기 전에 서버가 어떤 권한을 요구하는지 확인하고, 꼭 필요한 권한만 있는 키를 쓰세요.
입력해야 할 값: OCTRI_API_KEY, HTTPS_PROXY
내 컴퓨터에서 실행돼요. AI 앱이 필요할 때 실행하고, 데이터는 제작자의 서버를 거치지 않아요(서버 자체가 온라인 서비스를 호출하는 경우는 제외).
GitHub 저장소는 마지막으로 – 변경됐고, 최신 버전(1.0.6)은 25일 전 레지스트리에 올라왔어요.
Claude Desktop, Claude Code, Cursor, VS Code처럼 MCP를 지원하는 앱에서 쓸 수 있어요. 내 컴퓨터에 Node.js도 있어야 해요.
같은 카테고리에는: Spec Driven Development, Remote Desktop Commander, sync. labs
같은 카테고리에서 다른 제작자가 만든 서버예요. 스타 순으로 정렬했어요.
카드 보는 법:★ GitHub 스타i세 기둥: 리뷰 · 점검 · 사용 정도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.
Lipsync videos, dub them into other languages, make talking videos and open sync. Studio.
제작자의 저장소에서 쓰인 그대로 가져왔어요. 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.