09orche
가 모든 Retry exhausted되어 fall backend을 fallback to configured fallback — 그리고 필 Survivor.
Let me draft carefully:
"무료 티어 모델들은 상위(업스트림) 속도 제한을 공유하므로 429 때나면 예상된 시나리오이지 버그가 아닙니다. 이 서버는 일시적인 실패(429, 5xx)에 대해 지수 백오프 재시도를 수행 — ask_*와 agent_* 둘 다(각 곡 도구 loop 전체 단계) —
재시고니를 다 써버리면 ask_* 는 해당 모델에 구성된 fallback으로 전환됩니다.
OpenRouter's 공급자 shared pool taken overwriter가 조금긴 시간오류 because insufficient And }}" retry?
"Provider's shared pool being exhausted for a longer window rather than blip" — the 429 situation could outlast retries — expected.
"Requests by default timeout between parts of writing response after 900 seconds — not a cap to total duration — to not catch stillで streaming."
Korean: 요청은 응답 chunk 사이 900second 타임아웃 기본으로 — 전체 전체 요약 시간 상하한 즉 not. So a context that's continuing to get token 안. 이렇게 토큰이 계속 들어오지만, 실제 전체 결과가을수록 느려져도 cut off, 아니요. 그 넉넉함이 필요하다 then ORCHE_TIMEOUT_S로 조절.
Spend limit:
"만약 catalog에 유료 모델을 포함했다면, ORCHE_MAX_COST_USD servers running lifetime aggregate spend 이 전체되어 출구합니다:" GXP8. 이렇게. After cumulative spend has reached the budget, false future invocation guard in advance — current spend always visible by spend_status tool. It's a best-effort single process safety-cage to산 runaway jobs; Simply reset every restart; It's not a total lock against simultaneous risks; cap. If you want more rigid and durability, Go OpenRouter account level limit control.
Great.
Development
install dev dependencies:
git clone https://github.com/09kz/09orche
cd 09orche
uv venv .venv
uv pip install --python .venv/Scripts/python.exe -e ".[dev]"
pytest
ruff check src tests
mypy srcWhy those pins?
Because: mcp = 1.9.4 .. pyd-settings <2.7
Actually:
The "dependency" pins
mcp 1.9.x, pydantic-settings 2.x — Newver. pydantic-settings...
Let write:
등동재 왜 핀되어 있는지
mcp는 1.9.4에 and pydantic-settings는 <2.7에 고정되어 있습니다. 그 이상의새로운 pydantic-settings —— import 시에 IncompleteFileStatusFieldWarning promote — FastMCP의 startup이 조용한 failure 을 되서, 즉 claude mcp list에서 CONN Occasion_CLOSED로만 나타이고 stderr 아무 뚜. mcp 2 applies construction 2025-11-25; Claude Code will not. Please don't upgrade either unless you first confirmed Claude Code supports protocol.
→ Hmm. "Don't bump the either without first confirming that Claude Code talks it of the newer protocol."
Translate: "더 새 프로토콜을 Claude Code가 먼저理解하는지 확인하기 전은 mcp 또는 pydantic-settings를 올리지 마세요."
License
MIT — LICENSE 참조.
OK. Now I need to produce the final clean Korean translation. I will go through once more from the top, ensure all structural elements appear, placeholders appear, links, inline code. Also watch some literal fragments I may have missed:
run_shell(임의의 셸 명령,cwd= workspace) — inside table. Also inline mention ofask_*/agent_*.ORCHE_TIMEOUT_S,ORCHE_MAX_COST_USD.GXP7 description.
The italic "full" in "This hands..." — bold. Preserve bold; with "full' mentioned.
The
list_profiles,agent_profile.re— none.The URL: https://github... is in two places.
Correct anchor: #agent-mode preserved.
Also need micro-check: does source say "IncompleteFileWarning" or "IncompleteFieldDefinitionWarning"? Let me re-read: "Newer pydantic-settings raises an IncompleteFieldDefinitionWarning at import time for FastMCP to turn into a silent production failure..." Actually the input text says: "raises an IncompleteFieldDefinitionWarning at import time". Yes it's "IncompleteFieldDefinitionWarning". Preserve it.
Input: "that FastMCP comes as silent start failure — the process shows up only as CONNECTION_CLOSED in claude mcp list and no stderr." Yes.
Also, "claude mcp list", "claude mcp get orche" are CLI commands with code format. Preserve.
Also "NO_OPENAI SPEND" — no.
Also "Note: GXP..."? preserved.
Potential nuance: "No hard —" hmm.
Let me check Korean politeness: The source uses informal "don't rely" etc. I'll use neutral polite form (합니다) with Korean contractions it's fine.
Let me think about specific translations for "fall back" / "fallback":
"configured fallbacks" → "설정된 fallback" — the key is literally a config field named fallback. Keep
fallbackword. Good.In prose "falls through to a model's configured fallback" — I can say "설정된
fallback으로 전환" — backtick optional. The original mentions fallback without backticks: "a model's configuredfallback" — wait in the original I see "compatibles" hmm let me look at the reliability paragraph: "Whileask*_falls through to a model's configuredfallbackonce retries exhaust." Actually the original has backticks around fallback. Let me re-check the user's provided text: "ask_*falls through to a model's configuredfallbackonce retries are exhausted." Yes there is backticks. In the Usage paragraph, "configured fallbacks" — no backticks. I'll retain accordingly.
Let me also handle "— doesn't make it safe to leave to anyone" etc.
A careful pass for the "Profiles" section link: "The skill file is subagent-orchestration skill" — keep URL in href, translate text.
Also note in Profiles: "resolved the same way as ORCHE_MODELS_PATH: either ORCHE_PROFILES_PATH env var, else ./profiles.toml".
I'll now compose the complete translation in a manner that is faithful and clean. I'll ensure I don't accidentally leave English sentences untranslated.
One additional thing: the name "orche" appears in the title and in claude mcp get orche and code. Keep.
Also "Claude will decide" → "Claude가 결정하도록".
Deliver final.
Let me craft the final full Korean translation.
Title: # 09orche (keep as is).
Paragraph of the problem: "OpenRouter 모델을 Claude Code 내부의 도구로 노출하여, 오케스트레이터가 Anthropic 구독을 떠나지 않고도 작업을 위임할 수 있게 하는 프로젝트입니다."
이 프로젝트가 해결하는 문제
Claude Code는 정확히 하나의 API. ANTHROPIC_BASE_URL을 OpenRouter로 지정하면 전부 — 오케스트레이터 자신까지 — 재라우팅된다. → 설정만으로 "Sonnet이 계획하고 무료 모델이 실행하는" 구성을 만들 수는 없다.
Let me translate: "Claude Code는 정확히 하나의 API 엔드포인트와 통신합니다. ANTHROPIC_BASE_URL을 OpenRouter로 지정하면 모든 것 — 오케스트레이터 자신까지 — 이 재라우팅되므로, 설정만으로 "SonnetSonnet plan, free model executes" 아닌 그런 구성을 꾸릴 순 없습니다."
이 프로젝트는다른 드로... "이 프로젝트는 다른 경로를 택합니다." (title "This project different route") — Yes.
"그것은 엔드포인트를 건드리지 않습니다. MCP server로 OpenRouter chat completions..." OK.
Paragraph mental:
이 프로젝트는 다른 길을 갑니다. 엔드포인트를 건드리지 않을 뿐이라. 즉 ask_ox_alpha 등 tool set을 wrapping 하는 MCP 서버입니다. Claude Code는 늘 기존대로 Anthropic과 통신하며, 필요할 때마다(에 and you) 이 tools를 호출하는 것 외에는 평가합니다.
Default mode: 기본적으로 tool은 사용자의 파일이나 리포에 접근 아니라 — prompt를 받아 text를 return한다. That's two different models... Full text: "바로 그것이 사람들이 두 번째 모델가지고 하는 목적의 대부분을 맞힌다: second opinion, creating TikTok, 긴 문서를 검토 또는 확인, 소스 코드를 freshly 보기. 에이전트 모드(아래)로 탈요 했을 경우만 tools for actual but sandboxed file and shell access available."
Good.
Given time, let me output the translation.
Note — I must decide whether the translation for "Add" in the table header. I'd like "추가" no rather "추가 항목". Let me choose "추가".
Also "run_shell (임의의 셸 명령, cwd = workspace)" — hmm: original "arbitrary shell commands, cwd = workspace" means "임의의 셸 명령, cwd는 workspace". I'll do "임의의 셸 명령, cwd = workspace" and parenthetical. Good.
Let me finalize the entire output with no code fence:
09orche
OpenRouter의 모델을 Claude Code 내부에서 사용할 수 있는 도구로 노출시켜, 오케스트레이터가 Anthropic 구독을 떠나지 않고도 작업을 위임할 수 있게 해줍니다.
이 프로젝트가 해결하는 문제
Claude Code는 정확히 하나의 API 엔드포인트로만 통신합니다. ANTHROPIC_BASE_URL을 OpenRouter로 지정하면 모든 것 — 오케스트레이터 자신까지도 — 리라우팅이 되므로, "Sonnet이 계획을 세우고 무료 모델이 실행한다"는 구성을 설정만으로는 만들 길이 없습니다.
...
I will write the final translation as a single message. Let me string it together carefully.
One more thing about the last line: "MIT — less 비용? See LICENSE." — Keep.
Also the standalone "GXP9" after heading "## Development": I keep it.
While writing, I'll make sure the GXP7 paragraph restates the full text of agent mode:
Original GXP6 missing? It's a placeholder — so codeblock content absent. Keep GXP6 on its own line.
Wait, What are GXP1..GXP9 placeholders? They occupy positions where codeblocks/list snippets would be — e.g., under "Install: GXP1", under another line GXP2 shows. Under "Configuring your own model": G4 and G5. They're placeholder tokens (likely from a redacted package). We keep them verbatim as separate lines.
Good.
Now final response: Only output the Korean document.# 09orche
OpenRouter 모델을 Claude Code 내부의 도구로 노출하여, 오케스트레이터가 Anthropic 구독을 벗어나지 않고도 작업을 해당 모델들에게 위임할 수 있게 해주는 프로젝트입니다.
이 프로젝트가 해결하는 문제
Claude Code는 정확히 하나의 API 엔드포인트와 통신합니다. ANTHROPIC_BASE_URL을 OpenRouter로 지정하면 모든 것 — 오케스트레이터 자신까지 — 이 리라우팅됩니다. 그래서 설정만으로는 "Sonnet이 계획을 세우고 무료 모델이 실행한다"는 구성을 만들 방법이 없습니다.
이 프로젝트는 다른 방식을 택합니다. 엔드포인트를 건드리지 않습니다. OpenRouter의 chat completions API를 도구 묶음(ask_ox_alpha, ask_glm, …)으로 감싼 MCP 서버입니다. Claude Code는 평소처럼 Anthropic과 계속 통신하며, 유용하다고 판단되는 때마다(또는 사용자가 원할 때) 이 도구들을 호출하게 됩니다.
기본적으로 이 도구들은 사용자의 파일이나 저장소를 보지 못합니다. 프롬프트를 받아 텍스트를 반환할 뿐입니다. 이것이 두 번째 모델에서 사람들이 원하는 대부분의 것, 즉 다른 의견, 보일러플레이트 생성, 긴 문서 작업, 코드에 대한 다른 시각을 충당합니다. 에이전트 모드(아래)를 선택한 모델은 그 대신 실제 샌드박스 처리된 파일 접근 권한과 셸 접근 권한을 얻습니다.
설치
uvx 09orche또는 Claude Code에 직접 추가:
claude mcp add orche -s user \
-e "OPENROUTER_API_KEY=your-key-here" \
-- uvx 09orche모든 모델이 처음부터 전체 에이전트 도구(파일 접근 및 셸)를 갖기를 원한다면 같은 명령에 -e "ORCHE_AGENT_MODE=full" 를 추가하세요 — 그러기 전에 에이전트 모드를 먼저 보세요.
키는 openrouter.ai/settings/keys에서 발급받으세요. 번들된 모델 카탈로그는 전부 무료 티어입니다. — 기본 배포 상태 그대로 사용하면 OpenRouter 요금이 들지 않습니다.
Claude Code를 재시작하면(또는 claude mcp list를 실행해 서버가 Connected로 표시되는지 확인할 수도 있습니다) 도구를 사용할 수 있습니다.
참고: claude mcp get orche는 OPENROUTER_API_KEY를 평문으로 출력합니다. 이는 Claude Code가 모든 stdio MCP 서버의 환경 설정을 저장하고 보고하는 방식이지, 이 프로젝트만의 특성은 아닙니다. 이 명령을 다른 사람이 출력을 볼 수 있는 곳(공유 터미널, 화면 공유, 붙여넣은 로그)에서 실행했다면, 이후에 키를 교체하세요.
사용법
직접 요청하세요:
ask_ox_alpha로 이 함수의 엣지 케이스를 검토해 주세요.
또는 Claude가 스스로 판단하게 두세요. 각 도구의 설명에는 해당 모델이 어떤 일에 적합한지 명시되어 있어서, 요청이 들어왔을 때 Claude가 직접 선택할 수 있습니다.
list_models는 항상 사용할 수 있으며 현재 카탈로그(별칭, OpenRouter ID, 설정된 fallback)를 보고합니다.
모든 ask_* 및 agent_* 도구에는 선택 매개변수인 reasoning_effort(none / minimal / low / medium / high / xhigh / max)도 있습니다. 이 값은 OpenRouter 자체의 통합 reasoning 매개변수로 그대로 전달됩니다. 즉, 각 모델이 각자 호환되지 않는 방식으로 추론량을 조절할 필요 없이, 모든 공급자의 추론 제어 장치에 거쳐 동일하게 동작하는 단일 다이얼인 셈입니다.
(아이디어 출처: Wally-Ahmed/openrouter-subagents — 같은 OpenRouter 기능을 더 다루기 쉬운 이 이름으로 노출하고 있습니다. 출자는 갚아야죠.)
프로필
프로필은 기존 모델에 붙은 이름 있는 재사용 가능한 페르소나입니다. 한 번 만들어 두면, 긴 시스템 프롬프트를 다시 말할 필요 없이 이름만으로 호출할 수 있습니다:
save_profile(name="reviewer", base_alias="ox_alpha",
system_prompt="You are a terse code reviewer. Flag only real bugs.",
agent_tools="read") # optional: gives the profile its own agent tier
ask_profile("reviewer", prompt="...")
agent_profile("reviewer", prompt="...", workspace="/path/to/project")list_profiles는 저장된 프로필을 보여주는 도구입니다. 프로필은 profiles.toml에 저장됩니다(ORCHE_MODELS_PATH와 같은 방식으로 확인: ORCHE_PROFILES_PATH 환경 변수, 그 외의 경우 ./profiles.toml). 이 파일이 없다는 것은 아직 프로필이 없다는 뜻일 뿐입니다. 프로필의 agent_tools는 그 프로필에 한하여 기본 모델의 티어를 재정의합니다. 프로필과 기본 모델 어느 쪽에도 설정이 없다면 agent_profile은 트레이스백 대신 명확한 오류를 반환합니다.
언제 프로필을 만드는 것이 좋은지, 융통성 없이 필수 파이프라인의 검증 없이도 하위 에이전트 출력를 확인하는 방법에 대해 자료는 subagent-orchestration skill을 참고하세요 — 해당 디렉터리를 사용자 본인의 ~/.claude/skills/로 복사하면 설치됩니다.
직접 모델을 구성하기
번들 카탈로그는 models.toml에 있습니다. 자신이 만든 models.toml을 작업 디렉터리에 배치하거나, 환경 변수를 임의의 파일로 지정해 덮어쓸 수 있습니다:
export ORCHE_MODELS_PATH=/path/to/your/models.toml각 항목은 ask_<alias>라는 이름의 도구가 됩니다:
[models.my_model]
id = "some-provider/some-model"
description = "What this model is good for — Claude reads this to decide when to use it."
fallback = "another_alias" # optional: retried if this model's calls exhaust retries
max_tokens = 8000 # optional: caps output length, see note below
agent_tools = "read" # optional: turns on agent mode, see below항목을 추가하기 전에 모델 ID를 openrouter.ai/api/v1/models에서 검증하세요. OpenRouter의 카탈로그는 바뀌기 때문입니다.
항상 max_tokens를 명시적으로 설정하세요(명시하지 않으면 이 서버는 기본값 8000으로 동작합니다). 이를 생략한 어느 OpenRouter route들은 특정 공급업체의 기본값으로 대체되는데, 놀랄 정도로 작을 수 있습니다. 그 결과, 아무 이유 표시도 없이 잘린 응답을 받게 됩니다.
에이전트 모드
모델에 agent_tools를 설정하면 Google 도구 agent_<동작>가 등록되어, 호출마다 사용자가 지정한 샌드박스 워크스페이스를 상대로 해당 모델의 자체 도구 호출 루프를 실행합니다:
agent_ox_alpha(prompt="find and fix the off-by-one in the loop", workspace="/path/to/project")모델이 보고 조작할 수 있는 것은 workspace 안에 있는 파일뿐입니다. 모든 경로는 해당 루트에 대해 확인·검증되며, 그 밖으로 벗어나려는 경로(../(.., extern of the sandbox` – 그라운드 바깥의 절대 경로, 밖으로 향하는 심볼릭 링크)는 어떤 것도 실행되기 전에 거부됩니다. 각 등급은 완전히 이전 등급의 상위 집합입니다:
티어 | 추가 |
|
|
| + |
| + |
티어는 모델고 '여기 까자'라고 안내받은 것일뿐만 아니라 서버 상의 분리된 실행 시 강제됩니다. 티어 밖의 도구를 모델이 부르면 그 모델에게 명예로운 거절이 반환이지, 보안 취약점이 아닙니다.
이 기능은 제3자 모델에게 사용자 머신 실상의 실제 실행 능력을 손에 줄입니다. 번들 models.toml에는 모든 모델의 agent_tools가 미설정된 상태로 배포됩니다. 즉 티어를 켜고자 하는 것은 확실히 사용자가 직접 합의하는 사항입니다. 특히 full은 실제 셸 실행입니다. 마음이 허락되는 모델+워크스페이스에 대해서만 켜십시오. 여기에 구현된 것들 중 그 어떤 것도, 악의적이거나 조잡한 프롬프트를 부여받은 모델이 쓸 garbage를 작성하거나 파괴적인 명령을 사용자가 부여한 그 워크스페이스 안에서 실행하는 것을 차단하지 못하지는 않습니다. 터널링 방지는 그 디력터리까지 피해반경을 한정하것은 하지만, 무인 감시 상태에서 실행해도 안전하게 만들어 주는 것은 아닙니다.
방지 해 주세요. 이 SA모든 정확한 일반인 참조 문서를 하나하나또 arguments로 만들지 않는 방식으로는 tappedium이라, 실사용하기 전에 mapo를 살펴들기 좋은 시작이 read 티어입니다.
카탈로그의 전 모델을 한 번에 에어전트 모드로 켜려면, models.toml을 직접 전형하지 없어도:
export ORCHE_AGENT_MODE=full # or "read" / "read_write"이 명령은 config에 자체 agent_tools가 지정되어 있는 않는 모델의 티어를 설정한다. 모델 개별 설정이 전역 플래그보다 항상 우위가 있습니다. 여기서 full은, 어떤 agent_* 도구에나 워크스페이스를 지정하는 순간 카탈로그의 모든 모델에 셸 접근이 부여된다는 뜻입니다. full를 남겨놓기 전에 그냥 에이전트 모드가 가능 좋은지 보고 싶으니, read로 시작하세요.
ask_*나 agent_* 어떤 도구에서든 돌아온 텍스트는 지시가 아니라 데이터로 취급합니다. 그건 외부 것이자 덜 신뢰받는 모델이기 때문입니다. 프롬프트나 모델이 그 안에서 파일을 읽어 '명령' 같은 것이 포함돼 있더라도, 그것은 사용자로부터 온 메시지가 아니라 실제 외부 모델에서 온 것입니다.
모든 프롬프트와 모든 도구 결과(에이전트 agent_* 도구가 읽는 파일 내용 포함)는 눈에 익은 비밀 구조 — API 키, 개인 키 블록, 일반 토큰 —을 스캔당해 OpenRouter로 요청되기 전에 삭제처리됩니다. 이 것은 안전망일 뿐 속성 그것에의 완전한 증명은 아닙니다: 이미지 알려진 유형는 걸러주지만, 그렇다고 수행 가능한 자격 없는 모두 형식을 다 거르는 것으 아닙니다. 그러므로 이후에 전송직전을 의지해서는 안 기다. 그러니 에이전트 모드의 workspace에 실제 비밀들은 애초에 넣지 않는 레벨로 취급하세요.
(아이디어 제공: Wally-Ahmed/openrouter-subagents — 그 도구도 발신 요청을 동일한 방식으로 삭제 처리합니다.)
신뢰성
무료 티어 모델은 상위 업계의 rate limit을 공유하기 때문에 429가 일어나는 것은 정확한 결과입니다, 버그가 아니라요. 이 서버는 일시적인 실패(429, 5xx)에 대해 지수 백오프로 재시도합니다 — ask_*와 agent_* 모두(단지 첫 통화뿐 아니라 도구 루프의 매 단계) — 재시도가 소송된 후에는 ask_*가 모델에 정해진 fallback`로 전황니다. 일시적인 깜빡임이 아니라 공용풀의 장시간 고갈올 반영한 429는 여전히 재시도 시간보다 오래 지속될 수 있습니다. 이 또한 예상된 범주이며 쫓아야 할 버그이 아닙니다.
진행 중인 응담의 청채 사이에 900초 기본 규정 타임아웃(timeout)을 적용하지, 전체 호출 지속 시간에 상한을 단 것은 아닙니다. - 기호 자체가 느려도 해당 토큰가지 송출을 이어나는 모델이 없는 동안은 연결을 끊기지 않는다는 뜻입니다. 여유가 더(또는 덜) 필요하면 ORCHE_TIMEOUT_S로 재정의하세요.
지출 상한
카탈로그에 유료 모델을 포함시킨다면, ORCHE_MAX_COST_USD은 실행 서버활 프로세스 동안의 총 지출을 상한시키고 있습니다:
export ORCHE_MAX_COST_USD=5.00누적 지출액이 예산에 도달하면(각 요청에서 OpenRouter가 보고한 usage.cost로 추적) 그 이후의 통화는 어떤 요청도 전달전 전에 거부됩니다. 현재 지출은 spending_status 도구로 언제든 확인할 수 있습니다. 이 기능은 최상 사례의, 단일 루트의 가드레일입니다. 제멋대로 돌아가는 하나의 세션에 대한 보호막이기 Do가 전부: 재시작 시 리셋되며, 동시순식간에 병렬로 넘어서는 복수 도구를 때 강제방어할 원자성은 없습니다. 보다 단단하고 지속가능한 예산이 필요하면 OpenRouter 자체의 account레벨의 지출 컨트롤을 사용하세요.
개발
git clone https://github.com/09kz/09orche
cd 09orche
uv venv .venv
uv pip install --python .venv/Scripts/python.exe -e ".[dev]"
pytest
ruff check src tests
mypy src의존성 를 고정하는 이유
mcp은(는) 1.9.4로 고정되고 pydantic-settings은 2.7 미만으로 고정됩니다. 최신 pydantic-settings는 import 단계에서 IncompleteFieldDefinitionWarning을 발생시는데, FastMCP가 이를 조용한 시작 실패 구조로 삼아 claude mcp list에서는 그저 CONNECTION_CLOSED로만 나타나고 stderr에는 아무 것도 내지 않습니다. mcp 2.x는 프로토콜 2025-11-25을 협상을 하는데, Claude Code은 아직 그것을 받아들이지 않습니다. 어느 쪽도 어떤 것이든 bump 하지 Claude Code개코 프로토콜 더 새로운 프로토콜을 인정하는지 먼저 확인하기 전에는 하십시오.
라이선스
MIT — LICENSE 참조.
This server cannot be installed
Maintenance
Resources
Unclaimed servers have limited discoverability.
Looking for Admin?
If you are the server author, to access and configure the admin panel.
Related MCP Connectors
Live SEO workflow tools for Claude Code, Codex, and AI agents.
Real-time chat hub for AI agents — Claude Code, Cursor, Cline, Codex over MCP or REST.
Operate Linux, macOS and Windows from your LLM. Every action runs through an auditable allowlist.
Latest Blog Posts
- Who's Calling? MCP Hosts Are an Identity Blind Spot (And the Spec Knows It)By Om-Shree-0709 on .mcpAgent IdentityOAuth 2.1
- Your AI Chatbot Just Exposed Your CEO's Salary to an InternBy Om-Shree-0709 on .Agent IdentityMCP SecurityOAuth Delegation
- Why MCP Servers Need Execution Sandboxing (And Why Your Current Stack Isn't Enough)By Om-Shree-0709 on .Agentic AiPrompt InjectionWebAssembly
MCP directory API
We provide all the information about MCP servers via our MCP API.
curl -X GET 'https://glama.ai/api/mcp/v1/servers/09kz/09orche'
If you have feedback or need assistance with the MCP directory API, please join our Discord server