{"id":"702b5f77-6dd7-4339-b9a9-c4f1dd68874b","slug":"crewai-crzyc0d3r-multimodal-mcp-router","name":"multimodal-mcp-router","description":"MCP server exposing text, image, audio, and video tools plus a CrewAI router/specialist/responder client, with an offline demo.","canonicalUrl":"https://www.xpersona.co/skill/crewai-crzyc0d3r-multimodal-mcp-router","sourceUrl":"https://github.com/crzyc0d3r/multimodal-mcp-router","homepage":null,"source":"GITHUB_REPOS","vendor":{"slug":"crzyc0d3r","label":"Crzyc0d3r","url":"https://github.com/crzyc0d3r/multimodal-mcp-router"},"protocols":["OPENCLEW"],"capabilities":["crewai","multi-agent"],"trustScore":null,"trustConfidence":"unknown","artifactCount":0,"benchmarkCount":0,"lastRelease":null,"freshnessAt":"2026-10-09T13:16:28.010Z","freshnessLabel":"Oct 9, 2026","securityReviewed":true,"openapiReady":false,"stats":[{"label":"Trust score","value":"Unknown"},{"label":"Compatibility","value":"OpenClaw"},{"label":"Freshness","value":"Oct 9, 2026"},{"label":"Vendor","value":"Crzyc0d3r"},{"label":"Artifacts","value":"0"},{"label":"Benchmarks","value":"0"},{"label":"Last release","value":"Unpublished"}],"factsPreview":[{"factKey":"vendor","category":"vendor","label":"Vendor","value":"Crzyc0d3r","href":"https://github.com/crzyc0d3r/multimodal-mcp-router","sourceUrl":"https://github.com/crzyc0d3r/multimodal-mcp-router","sourceType":"profile","confidence":"medium","observedAt":"2026-10-09T13:16:28.016Z","isPublic":true},{"factKey":"protocols","category":"compatibility","label":"Protocol compatibility","value":"OpenClaw","href":"https://www.xpersona.co/api/v1/agents/crewai-crzyc0d3r-multimodal-mcp-router/contract","sourceUrl":"https://www.xpersona.co/api/v1/agents/crewai-crzyc0d3r-multimodal-mcp-router/contract","sourceType":"contract","confidence":"medium","observedAt":"2026-10-09T13:16:28.016Z","isPublic":true},{"factKey":"docs_crawl","category":"integration","label":"Crawlable docs","value":"6 indexed pages on the official domain","href":"https://github.com/login?return_to=https%3A%2F%2Fgithub.com%2Fopenclaw%2Fskills%2Ftree%2Fmain%2Fskills%2Fasleep123%2Fcaldav-calendar","sourceUrl":"https://github.com/login?return_to=https%3A%2F%2Fgithub.com%2Fopenclaw%2Fskills%2Ftree%2Fmain%2Fskills%2Fasleep123%2Fcaldav-calendar","sourceType":"search_document","confidence":"medium","observedAt":"2026-04-15T05:03:46.393Z","isPublic":true},{"factKey":"handshake_status","category":"security","label":"Handshake status","value":"UNKNOWN","href":"https://www.xpersona.co/api/v1/agents/crewai-crzyc0d3r-multimodal-mcp-router/trust","sourceUrl":"https://www.xpersona.co/api/v1/agents/crewai-crzyc0d3r-multimodal-mcp-router/trust","sourceType":"trust","confidence":"medium","observedAt":null,"isPublic":true}],"highlights":["Trust evidence available"],"agentCard":{"name":"multimodal-mcp-router","description":"MCP server exposing text, image, audio, and video tools plus a CrewAI router/specialist/responder client, with an offline demo.","source":"GITHUB_REPOS","sourceId":"crewai:1359720938","repository":"https://github.com/crzyc0d3r/multimodal-mcp-router","documentation":"https://www.xpersona.co/skill/crewai-crzyc0d3r-multimodal-mcp-router/agent/crewai-crzyc0d3r-multimodal-mcp-router","protocols":["OPENCLEW"],"capabilities":["crewai","multi-agent"],"languages":["python"],"install":{"command":"git clone https://github.com/crzyc0d3r/multimodal-mcp-router.git","ecosystem":"git"},"examples":[{"kind":"example","language":"mermaid","snippet":"flowchart LR\n    U[User query] --> R{\"Router agent<br/>text / image / audio / video<br/>fallback: keyword + extension heuristics\"}\n    R -->|text| TS[Text Specialist]\n    R -->|image| IS[Image Specialist]\n    R -->|audio| AS[Audio Specialist]\n    R -->|video| VS[Video Specialist]\n    TS & IS & AS & VS --> RESP[\"Responder agent<br/>writes the final answer\"]\n    RESP --> A[Answer]\n\n    subgraph MCP[\"MCP server (FastMCP, stdio or streamable-http)\"]\n        T1[\"search_text<br/>TF-IDF\"]\n        T2[\"image_info<br/>image_caption\"]\n        T3[audio_info]\n        T4[video_frames]\n        T5[list_media]\n    end\n    TS <--> T1\n    IS <--> T2\n    AS <--> T3\n    VS <--> T4\n    TS & IS & AS & VS <--> T5\n    MCP --> STORE[(\"Media store<br/>FilesystemStore over media/<br/>or PixeltableStore\")]"},{"kind":"example","language":"text","snippet":"multimodal-mcp-router/\n├── run_server.py            # `python run_server.py --transport stdio|streamable-http [--port] [--media-root] [--store]`\n├── run_client.py            # `python run_client.py \"<query>\"` (CrewAI) | `--demo` (offline) | `--modality`, `--json`\n├── server/\n│   ├── mcp_server.py        # FastMCP wiring: build_server(store) registers the six tools; CLI with --transport\n│   ├── tools.py             # pure tool functions (search_text, image_info, image_caption, audio_info, video_frames, list_media)\n│   ├── store.py             # MediaStore interface; FilesystemStore (default); PixeltableStore (import-guarded reference)\n│   └── make_samples.py      # generates media/: PNGs (Pillow), a 440 Hz WAV (NumPy), a 12-frame MP4 (imageio), 3 text docs\n├── client/\n│   ├── router.py            # deterministic modality router: file extensions > known file names > weighted keywords\n│   ├── mcp_client.py        # MCPToolClient: sync facade that spawns the server over stdio (worker thread + queue)\n│   ├── agents.py            # CrewAI agents: Router, Text/Image/Audio/Video Specialists (mcps=MCPServerStdio + tool filter), Responder\n│   ├── crew.py              # MultimodalPipeline Flow: classify -> @router -> specialist crew -> responder; run_query()\n│   └── demo.py              # offline pipeline: deterministic router + scripted specialist plans + template responder\n├── media/                   # tiny generated fixtures (images/, audio/, video/, docs/) - regenerate with `python -m server.make_samples`\n├── tests/\n│   ├── test_tools.py        # each tool on the sample media, path escaping, caption fallbacks, sample generation\n│   ├── test_router.py       # routing heuristics, extension priority, known-file mentions, tie-breaking\n│   └── test_mcp_roundtrip.py# stdio round trip (list tools, call tools, error payloads) and the offline demo\n├── requirements.txt\n├── .env.example             # OPENAI_API_KEY / MODEL placeholders (CrewAI path only)\n├── .gitignore\n└── README.md"}]}}