Skip to content
Draft
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
4 changes: 2 additions & 2 deletions .gitignore
Original file line number Diff line number Diff line change
Expand Up @@ -9,8 +9,8 @@ distllms/
# Astro build cache
.astro-cache/

# skills/ is fetched from middlecache via bin/fetch-skills.ts
skills/
# /skills/ is fetched from middlecache via bin/fetch-skills.ts
/skills/
!.agents/skills/
!.agents/commands/
!.agents/agents/
Expand Down
9 changes: 8 additions & 1 deletion astro.config.ts
Original file line number Diff line number Diff line change
Expand Up @@ -252,7 +252,14 @@ export default defineConfig({
serialize: createSitemapLastmodSerializer(),
}),
react(),
skills(),
skills({
mcp: {
prefix: "/.well-known/mcp/skills",
resourceBase: "skill://",
directoryManifest: true,
archives: true,
},
}),
],
vite: {
resolve: {
Expand Down
1 change: 1 addition & 0 deletions eslint.config.js
Original file line number Diff line number Diff line change
Expand Up @@ -34,6 +34,7 @@ export default [
".flue/.wrangler/",
"dist/",
".github/",
"skills/",
],
},
{
Expand Down
2 changes: 1 addition & 1 deletion package.json
Original file line number Diff line number Diff line change
Expand Up @@ -83,7 +83,7 @@
"astro-breadcrumbs": "3.4.0",
"astro-expressive-code": "0.43.1",
"astro-icon": "1.1.5",
"astro-skills": "0.1.0",
"astro-skills": "github:irvinebroque/astro-skills#codex/sep-2640-mcp-skills",
"cidr-tools": "12.0.3",
"codeowners-utils": "1.0.2",
"date-fns": "4.4.0",
Expand Down
11 changes: 6 additions & 5 deletions pnpm-lock.yaml

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

12 changes: 12 additions & 0 deletions public/_headers
Original file line number Diff line number Diff line change
Expand Up @@ -19,5 +19,17 @@
/.well-known/agent-skills/index.json
Content-Type: application/json; charset=utf-8

/.well-known/mcp/skills/index.json
Content-Type: application/json; charset=utf-8

/.well-known/mcp/skills/.tree.json
Content-Type: application/json; charset=utf-8

/.well-known/mcp/skills/*/SKILL.md
Content-Type: text/markdown; charset=utf-8

/.well-known/mcp/skills/*.tar.gz
Content-Type: application/gzip

/.well-known/mcp/server-card.json
Content-Type: application/json; charset=utf-8
Original file line number Diff line number Diff line change
Expand Up @@ -18,6 +18,8 @@ These MCP servers allow your MCP client to read configurations from your account

The [Cloudflare API MCP server](https://github.com/cloudflare/mcp) provides access to the entire [Cloudflare API](/api/) — over 2,500 endpoints across DNS, Workers, R2, Zero Trust, and every other product — through just two tools: `search()` and `execute()`.

For most Cloudflare automation and account-management tasks, use the Cloudflare API MCP server. It can reach the full Cloudflare API from one connection, so you usually do not need to configure product-specific MCP servers.

It uses [Code Mode](/agents/model-context-protocol/protocol/codemode/), a technique where the model writes JavaScript against a typed representation of the OpenAPI spec and the Cloudflare API client, rather than loading individual tool definitions for each endpoint. The generated code runs inside an isolated [Dynamic Worker](/workers/runtime-apis/bindings/worker-loader/) sandbox.

This approach uses approximately 1,000 tokens regardless of how many API endpoints exist. An equivalent MCP server that exposed every endpoint as a native tool would consume over 1 million tokens — more than the entire context window of most foundation models.
Expand Down Expand Up @@ -86,7 +88,11 @@ Clone the [cloudflare/skills](https://github.com/cloudflare/skills) repository a

## Product-specific MCP servers

In addition to the Cloudflare API MCP server, Cloudflare provides product-specific MCP servers for targeted use cases:
Cloudflare also provides product-specific MCP servers for targeted use cases:

:::note[Use the Cloudflare API MCP server by default]
For most use cases, connect to the [Cloudflare API MCP server](#cloudflare-api-mcp-server). Use the product-specific MCP servers below only when you need a specialized workflow, non-API data source, or server-specific behavior.
:::

| Server Name | Description | Server URL |
| ----------------------------------------------------------------------------------------------------------------------- | ----------------------------------------------------------------------------------------------- | ---------------------------------------------- |
Expand Down
2 changes: 1 addition & 1 deletion tsconfig.json
Original file line number Diff line number Diff line change
Expand Up @@ -10,5 +10,5 @@
"jsxImportSource": "react"
},
"include": [".astro/types.d.ts", "**/*"],
"exclude": ["dist", "worker", ".flue"]
"exclude": ["dist", "worker", ".flue", "skills"]
}
Loading