OpenAPI to MCP Server
mcp-use/mcp-use
Turns an OpenAPI or Swagger spec into an MCP server with the mcp-use TypeScript SDK, mapping each operation to a tool, wiring auth, testing and deploying.
Operate Notion Public API through UXC with a curated OpenAPI schema for search, block traversal, page reads, content writes, and data source/database inspection.
$ npx skills add holon-run/uxc --skill notion-openapi-skill -a claude-codeProject install by default; add -g for ~/.claude/skills/.
$ gh skill install holon-run/uxc notion-openapi-skill --agent claude-codeProject scope by default; add --scope user for a personal install. Needs GitHub CLI 2.90.0 or later (public preview).
$ git clone --depth 1 https://github.com/holon-run/uxc.git skills-src && mkdir -p .claude/skills && cp -r skills-src/skills/notion-openapi-skill .claude/skills/notion-openapi-skill && rm -rf skills-srcUse ~/.claude/skills/ instead of .claude/skills for a personal install. The folder must contain SKILL.md.
Claude Code skills documentation · loads skills from .claude/skills/
Install the "notion-openapi-skill" agent skill from https://github.com/holon-run/uxc/tree/main/skills/notion-openapi-skill into .claude/skills/notion-openapi-skill/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "notion-openapi-skill", then confirm the skill loads.Claude Code copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
$skill-installer install https://github.com/holon-run/uxc/tree/main/skills/notion-openapi-skillType this inside Codex. $skill-installer <name> installs a curated skill from openai/skills. The installer writes to $CODEX_HOME/skills (default ~/.codex/skills). Restart Codex if the skill does not show up.
$ npx skills add holon-run/uxc --skill notion-openapi-skill -a codexProject install goes to .agents/skills/; add -g for ~/.codex/skills/.
$ gh skill install holon-run/uxc notion-openapi-skill --agent codexProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/holon-run/uxc.git skills-src && mkdir -p .agents/skills && cp -r skills-src/skills/notion-openapi-skill .agents/skills/notion-openapi-skill && rm -rf skills-srcUse ~/.agents/skills/ instead of .agents/skills for a personal install.
Codex skills documentation · loads skills from .agents/skills/
Install the "notion-openapi-skill" agent skill from https://github.com/holon-run/uxc/tree/main/skills/notion-openapi-skill into .agents/skills/notion-openapi-skill/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "notion-openapi-skill", then confirm the skill loads.Codex copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
$ npx skills add holon-run/uxc --skill notion-openapi-skill -a cursorProject install goes to .agents/skills/; add -g for ~/.cursor/skills/.
$ gh skill install holon-run/uxc notion-openapi-skill --agent cursorProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/holon-run/uxc.git skills-src && mkdir -p .cursor/skills && cp -r skills-src/skills/notion-openapi-skill .cursor/skills/notion-openapi-skill && rm -rf skills-srcUse ~/.cursor/skills/ instead of .cursor/skills for a personal install.
Cursor skills documentation · loads skills from .cursor/skills/, .agents/skills/, .claude/skills/, .codex/skills/
Install the "notion-openapi-skill" agent skill from https://github.com/holon-run/uxc/tree/main/skills/notion-openapi-skill into .cursor/skills/notion-openapi-skill/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "notion-openapi-skill", then confirm the skill loads.Cursor copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
$ gemini skills install https://github.com/holon-run/uxc.git --path skills/notion-openapi-skill--scope user (default) or --scope workspace; --path is the subfolder of the repo that holds the skill; --consent skips the security confirmation prompt.
$ npx skills add holon-run/uxc --skill notion-openapi-skill -a gemini-cliProject install goes to .agents/skills/; add -g for ~/.gemini/skills/.
$ gh skill install holon-run/uxc notion-openapi-skill --agent gemini-cliProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/holon-run/uxc.git skills-src && mkdir -p .gemini/skills && cp -r skills-src/skills/notion-openapi-skill .gemini/skills/notion-openapi-skill && rm -rf skills-srcUse ~/.gemini/skills/ instead of .gemini/skills for a personal install, then run /skills reload.
Gemini CLI skills documentation · loads skills from .gemini/skills/, .agents/skills/
Install the "notion-openapi-skill" agent skill from https://github.com/holon-run/uxc/tree/main/skills/notion-openapi-skill into .gemini/skills/notion-openapi-skill/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "notion-openapi-skill", then confirm the skill loads.Gemini CLI copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
$ gh skill install holon-run/uxc notion-openapi-skillInstalls for Copilot at project scope by default; add --scope user for a personal install. Preview a skill first with gh skill preview. Needs GitHub CLI 2.90.0 or later (public preview).
$ npx skills add holon-run/uxc --skill notion-openapi-skill -a github-copilotProject install goes to .agents/skills/; add -g for ~/.copilot/skills/.
$ git clone --depth 1 https://github.com/holon-run/uxc.git skills-src && mkdir -p .github/skills && cp -r skills-src/skills/notion-openapi-skill .github/skills/notion-openapi-skill && rm -rf skills-srcUse ~/.copilot/skills/ instead of .github/skills for a personal install. Commit .github/skills so cloud agent and code review can use it.
GitHub Copilot skills documentation · loads skills from .github/skills/, .claude/skills/, .agents/skills/
Install the "notion-openapi-skill" agent skill from https://github.com/holon-run/uxc/tree/main/skills/notion-openapi-skill into .github/skills/notion-openapi-skill/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "notion-openapi-skill", then confirm the skill loads.GitHub Copilot copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
$ npx skills add holon-run/uxc --skill notion-openapi-skill -a opencodeOpenCode documents no install command of its own. Project install goes to .agents/skills/; add -g for ~/.config/opencode/skills/.
$ gh skill install holon-run/uxc notion-openapi-skill --agent opencodeProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/holon-run/uxc.git skills-src && mkdir -p .opencode/skills && cp -r skills-src/skills/notion-openapi-skill .opencode/skills/notion-openapi-skill && rm -rf skills-srcUse ~/.config/opencode/skills/ instead of .opencode/skills for a personal install.
OpenCode skills documentation · loads skills from .opencode/skills/, .claude/skills/, .agents/skills/
Install the "notion-openapi-skill" agent skill from https://github.com/holon-run/uxc/tree/main/skills/notion-openapi-skill into .opencode/skills/notion-openapi-skill/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "notion-openapi-skill", then confirm the skill loads.OpenCode copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
notion-openapi-skillOperate Notion Public API through UXC with a curated OpenAPI schema for search, block traversal, page reads, content writes, and data source/database inspection.
Notion Openapi Skill is an agent skill from holon-run/uxc. Operate Notion Public API through UXC with a curated OpenAPI schema for search, block traversal, page reads, content writes, and data source/database inspection. Use when tasks need recursive reads or structured writes that Notion MCP does not expose directly.
Its SKILL.md is about 2.3k tokens, which your agent loads only when the skill is triggered. The skill folder holds 7 other files, including scripts and reference files (for example `agents/openai.yaml`, `references/notion-public.openapi.json` and `references/usage-patterns.md`).
It sits in Backend & APIs, covering OpenAPI specifications. It works with Notion, OpenAPI and Model Context Protocol. The repository describes itself as: A unified CLI for discovering and invoking tools across OpenAPI, MCP, GraphQL, gRPC, and JSON-RPC. The licence is MIT.
4 steps, taken from the first numbered list in SKILL.md.
Read from SKILL.md and the folder at commit 562d47c. It shows what the files ask for, not the result of running them.
Pre-approves nothing: there is no allowed-tools line, so your agent's usual permission prompts apply.
From allowed-tools in the SKILL.md frontmatter.
Ships 1 file in scripts/ (Shell), which the agent can run.
From the folder's file list and the shell code blocks in SKILL.md.
Hosts in commands or code, which the agent is likely to contact:
api.notion.comAlso links to:
developers.notion.comFrom URLs in SKILL.md, links to its own repository left out.
Names these keys or tokens, usually read from environment variables:
NOTION_API_TOKENFrom names ending in _API_KEY, _TOKEN, _SECRET, _KEY or _PASSWORD in SKILL.md.
Notion Openapi Skill loads about 2.3k tokens when it runs, and up to ~8.8k if it reads all its reference files. Until then it costs about 70 tokens; SKILL.md has 790 words of instructions outside code blocks.
Estimates: characters ÷ 4, the usual rule of thumb; real counts depend on the model's tokenizer. Scripts and assets cost tokens only if the agent reads them.
The automated check found no risky patterns in SKILL.md.
Automated static check — not a guarantee. Review scripts before installing. It scans the text of SKILL.md for risky patterns (piping downloads into a shell, reading credential files, hidden Unicode, destructive commands); the scripts in this folder are not scanned.
The full file from holon-run/uxc at commit 562d47c, republished under its MIT licence (© holon-run). 790 words, ~2,341 tokens.
.claude/skills/notion-openapi-skill/SKILL.md (or your agent's skills folder). This skill also uses 4 other files; get the full folder from GitHub.Use this skill to run Notion Public API operations through uxc + OpenAPI.
Reuse the uxc skill for shared execution, OAuth, and error-handling guidance.
uxc is installed and available in PATH.https://api.notion.com/v1.https://raw.githubusercontent.com/holon-run/uxc/main/skills/notion-openapi-skill/references/notion-public.openapi.jsonThis skill covers a read-first Notion REST surface focused on traversal plus common content writes:
in_trashThis skill does not cover:
https://api.notion.com/v1Notion-Version: 2026-03-11The schema is intentionally curated around traversal and schema discovery. It is not a full dump of the Notion API.
Notion Public API requires:
Authorization: Bearer <token>Notion-Version: 2026-03-11If you already have an internal integration token:
uxc auth credential set notion-openapi \
--auth-type api_key \
--header "Authorization=Bearer {{secret}}" \
--header "Notion-Version=2026-03-11" \
--secret-env NOTION_API_TOKEN
uxc auth binding add \
--id notion-openapi \
--host api.notion.com \
--path-prefix /v1 \
--scheme https \
--credential notion-openapi \
--priority 100How to get the internal integration token:
Share or Connections.NOTION_API_TOKEN or pass it directly to uxc auth credential set.Without connecting the integration to the target content, REST calls may authenticate successfully but still fail with access errors or return incomplete search results.
If you want OAuth-managed tokens for the REST host:
uxc auth oauth start notion-openapi \
--endpoint https://api.notion.com/v1 \
--redirect-uri http://127.0.0.1:8788/callback \
--client-id <client_id> \
--scope read
uxc auth oauth complete notion-openapi \
--session-id <session_id> \
--authorization-response 'http://127.0.0.1:8788/callback?code=...'
uxc auth credential set notion-openapi \
--auth-type oauth \
--header "Authorization=Bearer {{secret}}" \
--header "Notion-Version=2026-03-11"
uxc auth binding add \
--id notion-openapi \
--host api.notion.com \
--path-prefix /v1 \
--scheme https \
--credential notion-openapi \
--priority 100notion-mcpThis is technically possible in uxc if the existing credential already has a valid Notion OAuth access token.
Important:
Authorization=Bearer {{secret}} explicitlyNotion-Version=2026-03-11 on the shared credential means the same header will also be sent to mcp.notion.com/mcpShared-credential setup:
uxc auth credential set notion-mcp \
--auth-type oauth \
--header "Authorization=Bearer {{secret}}" \
--header "Notion-Version=2026-03-11"
uxc auth binding add \
--id notion-openapi-shared \
--host api.notion.com \
--path-prefix /v1 \
--scheme https \
--credential notion-mcp \
--priority 100Validate the effective mapping when auth looks wrong:
uxc auth binding match https://api.notion.com/v1Use the fixed link command by default:
command -v notion-openapi-cliuxc link notion-openapi-cli https://api.notion.com/v1 --schema-url https://raw.githubusercontent.com/holon-run/uxc/main/skills/notion-openapi-skill/references/notion-public.openapi.jsonnotion-openapi-cli -hInspect operation schema first:
notion-openapi-cli post:/search -hnotion-openapi-cli get:/blocks/{block_id}/children -hnotion-openapi-cli post:/pages -hnotion-openapi-cli patch:/blocks/{block_id}/children -hnotion-openapi-cli post:/data_sources/{data_source_id}/query -hPrefer read validation before broader traversal:
notion-openapi-cli get:/users/menotion-openapi-cli post:/search '{"query":"Roadmap","filter":{"property":"object","value":"page"},"page_size":10}'notion-openapi-cli get:/blocks/{block_id}/children block_id=<uuid> page_size=100Traverse recursively outside the API call boundary:
get:/blocks/{block_id}/children page by pagehas_children=true, call get:/blocks/{block_id}/children again on that child IDUse data source or legacy database reads to discover schema before property-sensitive queries:
notion-openapi-cli get:/data_sources/{data_source_id} data_source_id=<uuid>notion-openapi-cli post:/data_sources/{data_source_id}/query data_source_id=<uuid> '{"page_size":25}'notion-openapi-cli get:/databases/{database_id} database_id=<uuid>Execute writes only after explicit user confirmation:
notion-openapi-cli post:/pages '{...}'notion-openapi-cli patch:/blocks/{block_id}/children '{...}'notion-openapi-cli patch:/pages/{page_id} '{...}'notion-openapi-cli delete:/blocks/{block_id} block_id=<uuid>get:/users/mepost:/searchget:/pages/{page_id}get:/pages/{page_id}/properties/{property_id}get:/blocks/{block_id}get:/blocks/{block_id}/childrenpost:/pagespatch:/pages/{page_id}patch:/blocks/{block_id}/childrenpatch:/blocks/{block_id}delete:/blocks/{block_id}get:/data_sources/{data_source_id}post:/data_sources/{data_source_id}/queryget:/databases/{database_id}post:/databases/{database_id}/query--text.ok, kind, protocol, data, error.Notion-Version at the credential/header layer instead of requiring it as an operation argument. Keep the credential header on 2026-03-11 unless you intentionally migrate the whole skill surface.post:/pages, patch:/pages/{page_id}, patch:/blocks/{block_id}/children, patch:/blocks/{block_id}, or delete:/blocks/{block_id}.2026-03-11, archived has been replaced by in_trash for request and response semantics. Prefer in_trash in update payloads.patch:/blocks/{block_id}/children supports up to 100 new children in one request and up to two levels of nested blocks in a single payload.patch:/blocks/{block_id} updates block content, but it does not update child lists. Use patch:/blocks/{block_id}/children to append nested content.data_sources endpoints over legacy databases endpoints for new workflows. Keep legacy database reads only for compatibility with older shared links and IDs.get:/blocks/{block_id}/children returns only one nesting level at a time. Recursive traversal must be performed by repeated calls.page_size; always check has_more and next_cursor.notion-openapi-cli <operation> ... is equivalent to uxc https://api.notion.com/v1 --schema-url <notion_openapi_schema> <operation> ....references/usage-patterns.mdreferences/notion-public.openapi.json© holon-run, MIT. Rendered from Markdown: HTML in the file is shown as text, images as links, and headings moved down two levels. Raw file
SKILL.md and 4 other files (scripts, references) in skills/notion-openapi-skill of holon-run/uxc.
Open the folder on GitHubat commit 562d47c
Notion Openapi Skill next to the 5 skills that share the most tags, products or categories with it. Stars are the repository's; “used in” counts other GitHub owners with a copy.
| Skill | Stars | Used in | Tokens | Auto-check | Licence | Repo updated |
|---|---|---|---|---|---|---|
| Notion Openapi Skill this skillholon-run/uxc | 116 | — | ~2.3k | Automated safety check: Pass | MIT | |
| OpenAPI to MCP Servermcp-use/mcp-use | 11k | — | ~5.2k | Automated safety check: Pass | Apache-2.0 | |
| API Endpoint Contracttrycompai/comp | 2k | — | ~2.7k | Automated safety check: Pass | AGPL-3.0 | |
| SpikardGoldziher/spikard | 123 | — | ~799 | Automated safety check: Pass | MIT | |
| Executor Usagejeremyosih/pi-executor | 104 | — | ~1.4k | Automated safety check: Pass | MIT | |
| Catalog Sample Datakubeflow/hub | 186 | — | ~1.1k | Automated safety check: Pass | Apache-2.0 |
mcp-use/mcp-use
Turns an OpenAPI or Swagger spec into an MCP server with the mcp-use TypeScript SDK, mapping each operation to a tool, wiring auth, testing and deploying.
trycompai/comp
The contract every new or modified API endpoint must follow so it is correct for the public OpenAPI spec, the MCP server (npm @trycompai/mcp-server), the ValidationPipe, and the docs.
Goldziher/spikard
Scaffold Spikard projects and generate code from OpenAPI, AsyncAPI, OpenRPC, GraphQL, and Protobuf schemas using the Spikard CLI or its MCP server.
jeremyosih/pi-executor
Load this skill before using the execute tool. An agent skill from jeremyosih/pi-executor.
kubeflow/hub
Generate or update sample YAML data for a catalog plugin. An agent skill from kubeflow/hub.
WaHaiLong/KingdeeMCP
Knowledge base for the Kingdee MCP Dev Squad. An agent skill from WaHaiLong/KingdeeMCP.
holon-run/uxc
Query up-to-date library documentation and code examples using Context7 MCP.
holon-run/uxc
Ask questions and read documentation about any GitHub repository using DeepWiki MCP.
holon-run/uxc
Operate Linear workspace issues, projects, and teams through Linear GraphQL API using UXC.
holon-run/uxc
Operate Alchemy Prices API reads through UXC with a curated OpenAPI schema, path-templated API-key auth, and read-first guardrails.
holon-run/uxc
Discover and call remote schema-exposed interfaces with UXC.
holon-run/uxc
Operate Chainbase indexed wallet and token reads through UXC with a curated OpenAPI schema, API-key auth, and read-first guardrails.
Works with
Categories
Operate Notion Public API through UXC with a curated OpenAPI schema for search, block traversal, page reads, content writes, and data source/database inspection. Notion Openapi Skill is an agent skill from holon-run/uxc. Operate Notion Public API through UXC with a curated OpenAPI schema for search, block traversal, page reads, content writes, and data source/database inspection.
Notion Openapi Skill fits situations like: tasks need recursive reads; structured writes that Notion MCP does not expose directly.
Run `npx skills add holon-run/uxc --skill notion-openapi-skill -a claude-code`. Or copy the skill folder (skills/notion-openapi-skill in holon-run/uxc) into .claude/skills/notion-openapi-skill in your project. Claude Code loads it when a task matches its description.
Run `npx skills add holon-run/uxc --skill notion-openapi-skill -a codex`. Or copy the skill folder (skills/notion-openapi-skill in holon-run/uxc) into .agents/skills/notion-openapi-skill in your project. Codex loads it when a task matches its description.
Cursor, Gemini CLI, GitHub Copilot and OpenCode also load SKILL.md folders. With the skills CLI, run `npx skills add holon-run/uxc --skill notion-openapi-skill -a cursor` (or -a gemini-cli, github-copilot or opencode for the others). To copy it by hand, put the folder in .cursor/skills/notion-openapi-skill, .gemini/skills/notion-openapi-skill, .github/skills/notion-openapi-skill and .opencode/skills/notion-openapi-skill in your project.
Going by SKILL.md and its folder, Notion Openapi Skill needs a shell for the scripts in its folder and credentials named NOTION_API_TOKEN. Our summary lists: A Bash shell; A credential in NOTION_API_TOKEN.
SKILL.md names 2 domains. In commands or code: api.notion.com; the agent is likely to contact it when it follows the instructions. As links in the text: developers.notion.com. This is read from the text; nothing was executed.
Our automated static check of SKILL.md found no risky patterns, such as piping downloads into a shell, reading credential files or hidden Unicode. It is not a guarantee. The check reads SKILL.md only: the scripts in the folder are not scanned, so read them before running anything.
Notion Openapi Skill is published under the MIT licence (the repository's licence). It allows redistribution, so the full SKILL.md is shown on this page.
About 2.3k tokens (SKILL.md is roughly 9.4k characters). Agents keep only the skill's name and description in context until a task matches; then they load SKILL.md in full. Its references folder adds about 6.4k tokens, read only when the agent opens those files.
Skills that share tags, products or a category with Notion Openapi Skill: OpenAPI to MCP Server (mcp-use/mcp-use, 11k stars), API Endpoint Contract (trycompai/comp, 2k stars), Spikard (Goldziher/spikard, 123 stars) and Executor Usage (jeremyosih/pi-executor, 104 stars). The comparison table on this page puts their stars, adoption, token cost, safety result and licence side by side.
holon-run (a GitHub organization) maintains it in holon-run/uxc, which has 116 GitHub stars. The repository holds 62 skills in this directory. The repository was last updated on September 15, 2026.
Source: holon-run/uxc on GitHub. Facts on this page come from the repository at the commit we read; the author's words are quoted as theirs.