Skip to content

MotionRail — Agent Readiness Plan

Implement all isitagentready.com checks for motionrail.jujiplay.com.

1. Discoverability

CheckFileNotes
robots.txtdoc/public/robots.txtRFC 9309, AI crawler entries, Content-Signal, sitemap
SitemapVitePress built-inEnable sitemap plugin in config.mts
Link headersdoc/public/_headersdescribedby, service-doc, api-catalog Link relations
DNS-AIDCloudflare DNS_mcp._agents.motionrail.jujiplay.com + _index._agents.motionrail.jujiplay.com HTTPS records

2. Content Accessibility

CheckActionFiles
Markdown for AgentsPages Function middleware — intercept Accept: text/markdown, extract content, convert to markdown via turndownfunctions/_middleware.ts (Cloudflare Pages native TypeScript middleware)
llms.txtAlready generated in buildEnd hook.vitepress/dist/llms.txt
llms-full.txtAdd to buildEnd hook — concatenate all doc markdown.vitepress/dist/llms-full.txt

3. Bot Access Control

CheckIn
AI bot rulesrobots.txt — GPTBot, Claude-Web, etc.
Content Signalsrobots.txtContent-Signal: ai-train=yes, search=yes, ai-input=yes

4. Protocol Discovery

CheckFileNotes
MCP Server Carddoc/public/.well-known/mcp/server-card.jsonSEP-2127, remotes → /mcp
Agent Skillsdoc/public/.well-known/agent-skills/index.jsonv0.2.0, empty skills for now
API Catalogdoc/public/.well-known/api-catalogRFC 9727 linkset
MCP Serverdoc/functions/mcp.ts3 tools: get_package_info (npm), get_build_status (GitHub Actions), search_docs (via llms-full.txt). Pure Workers fetch(), no SDK needed. Path: POST /mcp
WebMCPSkipStatic docs site; MCP + Markdown for Agents covers agent needs
OAuth / A2ASkipPublic docs site, no auth

5. Commerce

Skip all — OSS library, free.

Files to Create

doc/
├── agent-readiness.md                    (this file)
├── public/
│   ├── robots.txt
│   ├── _headers
│   └── .well-known/
│       ├── api-catalog
│       ├── agent-skills/
│       │   └── index.json
│       └── mcp/
│           └── server-card.json

functions/
├── _middleware.ts                    (Cloudflare Pages native middleware)
└── mcp.ts                           (MCP server)

Build Pipeline Changes

doc/package.json

json
{
  "scripts": {
    "build": "vitepress build"
  },
  "devDependencies": {
    "@types/turndown": "^5.0.6"
  },
  "dependencies": {
    "turndown": "^7.2.4"
  }
}

doc/.gitignore

Remove functions/*.js (functions moved to repo root as .ts files).

doc/.vitepress/config.mts

Add llms-full.txt generation in buildEnd hook — read each sidebar doc's markdown, concatenate into single file at path.join(outDir, "llms-full.txt").

MCP Server Implementation

Same pattern as vistaview. Changes needed:

  • Package name: motionrail (not vistaview)
  • Repo: juji/motionrail (not juji/vistaview)
  • Docs origin: motionrail.jujiplay.com (not vistaview.jujiplay.com)
  • Search: read from /llms-full.txt instead of /llms-full.txt

Cloudflare Pages Config

  • Build command: pnpm build (from doc/ directory)
  • Build output: .vitepress/dist/
  • Root directory: doc/
  • Functions: functions/ at repo root