openclaw-mcp

openclaw-mcp

Bridges SKILL.md format to the Model Context Protocol, making effector skills available as MCP tools for agents like Claude, Cursor, and Windsurf.

Category
Visit Server

README

πŸ“¦ Consolidated. This package is now part of effectorHQ/effector β†’ packages/serve/src/mcp/. All active development continues in the monorepo. This repository remains available for reference.

Run: effector serve . via the unified CLI.


openclaw-mcp

npm version Status: Beta CI Node.js Version

PRs Welcome

δΈ­ζ–‡ζ–‡ζ‘£

Overview

openclaw-mcp bridges the effector SKILL.md format to the Model Context Protocol (MCP), enabling effector skills to work with any MCP-compatible agent runtime.

What It Does

Converts SKILL.md skill definitions into MCP-compatible tool definitions. Your OpenClaw skills instantly become available to:

  • Claude (Claude Desktop, API)
  • Cursor IDE
  • Windsurf IDE
  • Any MCP-supporting agent runtime

Why It Matters

  • Cross-Ecosystem Portability: Build once in OpenClaw, deploy everywhere MCP is supported
  • No Code Changes: Your existing SKILL.md files work without modification
  • Composable Skills: Combine OpenClaw skills with MCP tools from other sources
  • Standardized Interoperability: MCP is the industry standard for AI tool integration

Install

npm install @effectorhq/skill-mcp

You can also use the CLI directly without installing globally:

npx @effectorhq/skill-mcp ./skills
npx @effectorhq/skill-mcp --stdio

See the published package on npm: https://www.npmjs.com/package/@effectorhq/skill-mcp

Quick Start

Start MCP Server

npx @effectorhq/skill-mcp serve ./skills/

The server listens on stdin/stdout (MCP standard) and exposes all SKILL.md files in ./skills/ as MCP tools.

In Claude Desktop

Add to ~/.claude/desktop/config.json (macOS/Linux) or %APPDATA%\Claude\claude_desktop_config.json (Windows):

{
  "mcpServers": {
    "openclaw": {
      "command": "node",
      "args": ["[path-to-node-modules]/@effectorhq/skill-mcp/bin/skill-mcp.js", "serve", "./skills"]
    }
  }
}

Restart Claude Desktop. Your OpenClaw skills are now available as tools.

Architecture

β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”
β”‚   SKILL.md Files    β”‚
β”‚  (frontmatter +     β”‚
β”‚   markdown body)    β”‚
β””β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”¬β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜
           β”‚
           β–Ό
β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”
β”‚  skill-mcp Parser   β”‚
β”‚  (YAML β†’ JSON)      β”‚
β””β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”¬β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜
           β”‚
           β–Ό
β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”
β”‚  MCP Converter      β”‚
β”‚  (schema mapping)   β”‚
β””β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”¬β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜
           β”‚
           β–Ό
β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”
β”‚  MCP Server (stdio) β”‚
β”‚  (JSON-RPC 2.0)     β”‚
β””β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”¬β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜
           β”‚
           β–Ό
β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”
β”‚  MCP Clients        β”‚
β”‚  β€’ Claude           β”‚
β”‚  β€’ Cursor           β”‚
β”‚  β€’ Windsurf         β”‚
β”‚  β€’ etc.             β”‚
β””β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜

CLI Usage

Serve

Start an MCP server hosting your skills:

skill-mcp serve <directory> [--port 3000]

Convert

Convert a single SKILL.md to MCP JSON schema:

skill-mcp convert <path-to-skill.md> [--output output.json]

Validate

Validate SKILL.md files for MCP compatibility:

skill-mcp validate <directory>

Help

skill-mcp --help

Programmatic API

parseSkill(filePath)

Parses a SKILL.md file into a skill object.

import { parseSkill } from '@effectorhq/skill-mcp';

const skill = await parseSkill('./skills/my-skill.md');
console.log(skill.frontmatter.name);

convertToMCPTool(skill)

Converts a parsed skill to MCP tool schema.

import { convertToMCPTool, parseSkill } from '@effectorhq/skill-mcp';

const skill = await parseSkill('./skills/my-skill.md');
const mcpTool = convertToMCPTool(skill);
console.log(mcpTool);
// { name: '...', description: '...', inputSchema: { type: 'object', ... } }

createMCPServer(skillsDirectory)

Creates and returns a JSON-RPC 2.0 MCP server.

import { createMCPServer } from '@effectorhq/skill-mcp';

const server = createMCPServer('./skills');
await server.start();

File Structure

  • bin/skill-mcp.js β€” CLI entry point
  • src/index.js β€” Main module exports
  • src/parser.js β€” SKILL.md parser (YAML frontmatter)
  • src/converter.js β€” SKILL.md β†’ MCP tool converter
  • src/server.js β€” JSON-RPC 2.0 MCP server
  • tests/ β€” Test suite (Node.js built-in test runner)
  • docs/ β€” Architecture and mapping documentation

Development

npm test
npm run lint
npm run build

Contributing

Contributions welcome! See CONTRIBUTING.md.

License

This project is currently licensed under the Apache License, Version 2.0 。

Recommended Servers

playwright-mcp

playwright-mcp

A Model Context Protocol server that enables LLMs to interact with web pages through structured accessibility snapshots without requiring vision models or screenshots.

Official
Featured
TypeScript
Magic Component Platform (MCP)

Magic Component Platform (MCP)

An AI-powered tool that generates modern UI components from natural language descriptions, integrating with popular IDEs to streamline UI development workflow.

Official
Featured
Local
TypeScript
Audiense Insights MCP Server

Audiense Insights MCP Server

Enables interaction with Audiense Insights accounts via the Model Context Protocol, facilitating the extraction and analysis of marketing insights and audience data including demographics, behavior, and influencer engagement.

Official
Featured
Local
TypeScript
VeyraX MCP

VeyraX MCP

Single MCP tool to connect all your favorite tools: Gmail, Calendar and 40 more.

Official
Featured
Local
graphlit-mcp-server

graphlit-mcp-server

The Model Context Protocol (MCP) Server enables integration between MCP clients and the Graphlit service. Ingest anything from Slack to Gmail to podcast feeds, in addition to web crawling, into a Graphlit project - and then retrieve relevant contents from the MCP client.

Official
Featured
TypeScript
Kagi MCP Server

Kagi MCP Server

An MCP server that integrates Kagi search capabilities with Claude AI, enabling Claude to perform real-time web searches when answering questions that require up-to-date information.

Official
Featured
Python
E2B

E2B

Using MCP to run code via e2b.

Official
Featured
Neon Database

Neon Database

MCP server for interacting with Neon Management API and databases

Official
Featured
Exa Search

Exa Search

A Model Context Protocol (MCP) server lets AI assistants like Claude use the Exa AI Search API for web searches. This setup allows AI models to get real-time web information in a safe and controlled way.

Official
Featured
Qdrant Server

Qdrant Server

This repository is an example of how to create a MCP server for Qdrant, a vector search engine.

Official
Featured