{"_id":"@cleo-labs/skills-mcp","name":"@cleo-labs/skills-mcp","dist-tags":{"latest":"0.1.0"},"versions":{"0.1.0":{"name":"@cleo-labs/skills-mcp","version":"0.1.0","description":"MCP server exposing 45 production-grade product compliance skills as native MCP resources, prompts, and tools.","keywords":["mcp","model-context-protocol","compliance","regulatory","product-compliance","cosmetics","food","electronics","textiles","toys","supplements","medical-devices","EU","FDA","CE","REACH","claude","cursor","continue"],"homepage":"https://github.com/Cleo-Labs-IA/skills_library/tree/main/mcp-server","bugs":{"url":"https://github.com/Cleo-Labs-IA/skills_library/issues"},"license":"MIT","author":{"name":"Naomie Halioua","email":"contact@cleolabs.co","url":"https://cleolabs.co"},"repository":{"type":"git","url":"git+https://github.com/Cleo-Labs-IA/skills_library.git","directory":"mcp-server"},"type":"module","main":"dist/index.js","types":"dist/index.d.ts","bin":{"skills-mcp":"dist/index.js"},"engines":{"node":">=20"},"scripts":{"build":"tsc -p tsconfig.json && node -e \"require('fs').chmodSync('dist/index.js', 0o755)\"","prepack":"npm run build && npm run sync:skills","sync:skills":"node scripts/sync-skills.mjs","start":"node dist/index.js","dev":"tsx src/index.ts","test":"vitest run","test:watch":"vitest","typecheck":"tsc --noEmit","lint":"eslint \"src/**/*.ts\" \"test/**/*.ts\"","format":"prettier --write \"src/**/*.ts\" \"test/**/*.ts\""},"dependencies":{"@modelcontextprotocol/sdk":"^1.29.0","yaml":"^2.6.1","zod":"^3.25.0"},"devDependencies":{"@types/node":"^20.17.0","@typescript-eslint/eslint-plugin":"^8.18.0","@typescript-eslint/parser":"^8.18.0","eslint":"^9.17.0","prettier":"^3.4.2","tsx":"^4.19.2","typescript":"^5.7.2","vitest":"^2.1.8"},"publishConfig":{"access":"public"},"_id":"@cleo-labs/skills-mcp@0.1.0","gitHead":"58b5da127bb65b054bffa6367987f58efb78c83c","_nodeVersion":"24.2.0","_npmVersion":"11.3.0","dist":{"integrity":"sha512-1/ioQ7dSJ2+eFnkjqaFM1qfKgC5Xky2c3QTz4AfN9GNAK+7nTXLwiGmREk7TaGpj2I1+islNA/lAX2xT3pggDw==","shasum":"0f70d085955f1ec885048d8d6cb65df2f2a10fa1","tarball":"https://registry.npmjs.org/@cleo-labs/skills-mcp/-/skills-mcp-0.1.0.tgz","fileCount":94,"unpackedSize":678176,"signatures":[{"keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U","sig":"MEYCIQCspw8R7Z37tZv52XEyqVNS2dzkjaY3ecDJ6/6Cjvl7BAIhALiLPy8Lxb5vz0hbKG1ulzyFrIXAN44BqgcYVUrCX6N1"}]},"_npmUser":{"name":"cleo-labs","email":"naomie@cleolabs.co"},"directories":{},"maintainers":[{"name":"cleo-labs","email":"naomie@cleolabs.co"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages-npm-production","tmp":"tmp/skills-mcp_0.1.0_1780397967920_0.7117071716699332"},"_hasShrinkwrap":false}},"time":{"created":"2026-06-02T10:59:27.722Z","0.1.0":"2026-06-02T10:59:28.082Z","modified":"2026-06-02T10:59:28.307Z"},"maintainers":[{"name":"cleo-labs","email":"naomie@cleolabs.co"}],"description":"MCP server exposing 45 production-grade product compliance skills as native MCP resources, prompts, and tools.","homepage":"https://github.com/Cleo-Labs-IA/skills_library/tree/main/mcp-server","keywords":["mcp","model-context-protocol","compliance","regulatory","product-compliance","cosmetics","food","electronics","textiles","toys","supplements","medical-devices","EU","FDA","CE","REACH","claude","cursor","continue"],"repository":{"type":"git","url":"git+https://github.com/Cleo-Labs-IA/skills_library.git","directory":"mcp-server"},"author":{"name":"Naomie Halioua","email":"contact@cleolabs.co","url":"https://cleolabs.co"},"bugs":{"url":"https://github.com/Cleo-Labs-IA/skills_library/issues"},"license":"MIT","readme":"# @cleo-labs/skills-mcp\n\n[![MIT licensed](https://img.shields.io/badge/license-MIT-blue.svg)](./LICENSE)\n[![npm](https://img.shields.io/npm/v/@cleo-labs/skills-mcp.svg)](https://www.npmjs.com/package/@cleo-labs/skills-mcp)\n[![MCP](https://img.shields.io/badge/MCP-compatible-7c3aed)](https://modelcontextprotocol.io)\n\n> **MCP server exposing 45 production-grade product-compliance skills as native MCP resources, prompts, and tools.**\n\nThis is the MCP transport for the [skills_library](https://github.com/Cleo-Labs-IA/skills_library) repo. Each compliance skill (cosmetics, food, electronics, toys, textiles, supplements, medical devices, customs, recalls, and more) is surfaced to any MCP-aware client as:\n\n- a **resource** — `skill://<name>` returning the full SKILL.md as `text/markdown`\n- a **prompt** — `<name>` with an optional `{user_query}` parameter\n- callable via three top-level **tools** — `list_skills`, `find_skill`, `read_skill`\n\nBuilt on the official [`@modelcontextprotocol/sdk`](https://github.com/modelcontextprotocol/typescript-sdk). MIT licensed. Slim Docker image. Works out of the box with Claude Desktop, Cursor, Continue, Zed, and any other MCP client.\n\n---\n\n## Install\n\n### Run via `npx`\n\n```bash\nnpx -y @cleo-labs/skills-mcp@latest\n```\n\n### Install globally\n\n```bash\nnpm install -g @cleo-labs/skills-mcp\nskills-mcp\n```\n\n### Run via Docker\n\n```bash\ndocker run --rm -i ghcr.io/cleo-labs-ia/skills-mcp:latest\n```\n\nThe server speaks the MCP JSON-RPC protocol on stdio. It logs operational messages to stderr; stdout is reserved for MCP traffic.\n\n---\n\n## Wire it into your MCP client\n\n### Claude Desktop\n\nAdd to `~/Library/Application Support/Claude/claude_desktop_config.json` (macOS) or `%APPDATA%/Claude/claude_desktop_config.json` (Windows):\n\n```json\n{\n  \"mcpServers\": {\n    \"cleo-skills\": {\n      \"command\": \"npx\",\n      \"args\": [\"-y\", \"@cleo-labs/skills-mcp@latest\"]\n    }\n  }\n}\n```\n\nRestart Claude Desktop. The 45 skills will appear under the resources picker (the paper-clip icon) and the slash-commands menu.\n\n### Cursor\n\n`~/.cursor/mcp.json`:\n\n```json\n{\n  \"mcpServers\": {\n    \"cleo-skills\": {\n      \"command\": \"npx\",\n      \"args\": [\"-y\", \"@cleo-labs/skills-mcp@latest\"]\n    }\n  }\n}\n```\n\n### Continue\n\n`~/.continue/config.yaml`:\n\n```yaml\nmcpServers:\n  - name: cleo-skills\n    command: npx\n    args:\n      - \"-y\"\n      - \"@cleo-labs/skills-mcp@latest\"\n```\n\n### Codex / Zed / generic MCP host\n\nAny client that supports the `command + args` MCP launcher format works the same way. See [`examples/`](./examples) for ready-to-copy snippets.\n\n---\n\n## What the server exposes\n\n### Resources\n\n| Field | Value |\n| ----- | ----- |\n| Count | **45** (one per skill) |\n| URI scheme | `skill://<name>` (e.g. `skill://cosmetics-compliance`) |\n| Mime type | `text/markdown` |\n| Body | The full `SKILL.md` including YAML frontmatter |\n\n### Prompts\n\n| Field | Value |\n| ----- | ----- |\n| Count | **45** (one per skill) |\n| Name | The skill's name (e.g. `food-compliance`) |\n| Argument | `user_query` *(optional)* — appended after the skill content as a follow-up user message |\n\nEach prompt returns a two-message conversation: a system-style preamble that loads the skill content, followed by the user's question. This makes \"load skill + ask question\" a single slash command in Claude Desktop.\n\n### Tools\n\n| Tool | Args | Returns |\n| ---- | ---- | ------- |\n| `list_skills` | `vertical?`, `query?`, `limit?` | All skills matching the filters |\n| `find_skill` | `question`, `limit?` | Top-N skills ranked by relevance to a free-text question |\n| `read_skill` | `name` | Full `SKILL.md` body for one skill |\n\nAll tools return both `content[].text` (JSON-stringified) and `structuredContent` (parsed object) so they work with old and new MCP clients.\n\n### Server info\n\n```json\n{\n  \"name\": \"cleo-skills-mcp\",\n  \"title\": \"Cleo Skills MCP\",\n  \"version\": \"0.1.0\",\n  \"capabilities\": { \"resources\": {}, \"prompts\": {}, \"tools\": {}, \"logging\": {} }\n}\n```\n\n---\n\n## Architecture\n\n```\nmcp-server/\n├── src/\n│   ├── index.ts          # bin entry point (stdio transport)\n│   ├── server.ts         # createServer() factory\n│   ├── handlers/         # resource / prompt / tool registration\n│   ├── tools/            # list_skills / find_skill / read_skill\n│   └── skills/           # loader, parser, registry\n├── test/                 # vitest suites: unit + e2e via InMemoryTransport\n├── examples/             # client config snippets\n├── Dockerfile            # multi-stage, node:20-alpine\n└── scripts/sync-skills.mjs   # copies ../skills/ into ./skills/ pre-publish\n```\n\nSee [`ARCHITECTURE.md`](./ARCHITECTURE.md) for design notes.\n\n---\n\n## Develop\n\n```bash\n# Install deps\ncd mcp-server\nnpm install\n\n# Run the server in dev mode (reads from ../skills/)\nnpm run dev\n\n# Type-check + tests\nnpm run typecheck\nnpm test\n\n# Build\nnpm run build\n\n# Validate via raw JSON-RPC\necho '{\"jsonrpc\":\"2.0\",\"method\":\"initialize\",\"id\":1,\"params\":{\"protocolVersion\":\"2025-06-18\",\"capabilities\":{},\"clientInfo\":{\"name\":\"smoke\",\"version\":\"1.0\"}}}' | node dist/index.js\n```\n\n### Environment\n\n- `SKILLS_DIR` — override the auto-resolved skills directory.\n\n---\n\n## License\n\nMIT. See [LICENSE](./LICENSE). The skills themselves are also MIT — see the [root repo](https://github.com/Cleo-Labs-IA/skills_library).\n\n## Author\n\n[Cleo Labs](https://cleolabs.co) · Naomie Halioua · `contact@cleolabs.co`\n","readmeFilename":"README.md","_rev":"1-0b571f2d761c442fe2b6b1c0855ab170"}