Documentation

MCP Tools Reference

The KillerSkills MCP server provides four tools for searching and retrieving skills and personas. All tools use JSON-RPC 2.0 protocol over HTTP POST.

search_skills

Search the skills marketplace by query, category, runtime, or combination of filters.

Parameters

ParameterTypeRequiredDescription
querystringNoSearch term to match against skill title, description, and tags
categorystringNoFilter by category (development, testing, documentation, etc.)
runtimestringNoFilter by compatible runtime (claude-code, cursor, copilot, etc.)
limitnumberNoMaximum results to return (default: 20, max: 100)

Response

Returns an array of skills with the following fields:

  • slug — Unique identifier for the skill
  • title — Skill name
  • description — Brief description
  • category — Category classification
  • runtimes — Array of compatible runtimes
  • downloads — Total download count
  • ratingAvg — Average rating (1-5)

Example Request

{
  "jsonrpc": "2.0",
  "id": 3,
  "method": "tools/call",
  "params": {
    "name": "search_skills",
    "arguments": {
      "query": "typescript testing",
      "category": "testing",
      "limit": 5
    }
  }
}

Example Response

{
  "jsonrpc": "2.0",
  "id": 3,
  "result": {
    "content": [
      {
        "type": "text",
        "text": "[{\"slug\":\"jest-typescript-setup\",\"title\":\"Jest TypeScript Setup\",\"description\":\"Configure Jest for TypeScript projects with modern best practices\",\"category\":\"testing\",\"runtimes\":[\"claude-code\",\"cursor\"],\"downloads\":1247,\"ratingAvg\":4.8},{\"slug\":\"vitest-config\",\"title\":\"Vitest Configuration\",\"description\":\"Set up Vitest for blazing fast TypeScript testing\",\"category\":\"testing\",\"runtimes\":[\"claude-code\",\"cursor\",\"continue\"],\"downloads\":892,\"ratingAvg\":4.6}]"
      }
    ]
  }
}

get_skill

Retrieve the full content and metadata for a specific skill by its slug.

Parameters

ParameterTypeRequiredDescription
slugstringYesUnique skill identifier (from search results)

Response

Returns a complete skill object with:

  • slug — Unique identifier
  • title — Skill name
  • description — Brief description
  • content — Full markdown instruction body
  • category — Category classification
  • tags — Array of topic tags
  • runtimes — Array of compatible runtimes
  • author — Creator information (name, username, avatarUrl)
  • downloads — Total download count
  • ratingAvg — Average rating (1-5)
  • isVerified — Official verification status

Example Request

{
  "jsonrpc": "2.0",
  "id": 4,
  "method": "tools/call",
  "params": {
    "name": "get_skill",
    "arguments": {
      "slug": "jest-typescript-setup"
    }
  }
}

Example Response

{
  "jsonrpc": "2.0",
  "id": 4,
  "result": {
    "content": [
      {
        "type": "text",
        "text": "{\"slug\":\"jest-typescript-setup\",\"title\":\"Jest TypeScript Setup\",\"description\":\"Configure Jest for TypeScript projects with modern best practices\",\"content\":\"# Jest TypeScript Setup\\n\\nThis skill helps you configure Jest for TypeScript projects...\\n\\n## Installation\\n\\n```bash\\nnpm install --save-dev jest @types/jest ts-jest\\n```\\n\\n## Configuration\\n...\",\"category\":\"testing\",\"tags\":[\"jest\",\"typescript\",\"testing\",\"unit-tests\"],\"runtimes\":[\"claude-code\",\"cursor\"],\"author\":{\"name\":\"Alex Developer\",\"username\":\"alexdev\",\"avatarUrl\":\"https://avatars.killerskills.ai/avatars/user123/avatar.jpg\"},\"downloads\":1247,\"ratingAvg\":4.8,\"isVerified\":true}"
      }
    ]
  }
}

search_personas

Search the personas marketplace by query, category, runtime, or combination of filters.

Parameters

ParameterTypeRequiredDescription
querystringNoSearch term to match against persona name, description, and tags
categorystringNoFilter by category (development, writing, data, etc.)
runtimestringNoFilter by compatible runtime
limitnumberNoMaximum results to return (default: 20, max: 100)

Response

Returns an array of personas with:

  • slug — Unique identifier for the persona
  • title — Persona name
  • description — Brief description
  • category — Category classification
  • runtimes — Array of compatible runtimes
  • responseStyle — Communication style (concise, detailed, etc.)
  • downloads — Total download count
  • ratingAvg — Average rating (1-5)

Example Request

{
  "jsonrpc": "2.0",
  "id": 5,
  "method": "tools/call",
  "params": {
    "name": "search_personas",
    "arguments": {
      "query": "senior backend engineer",
      "limit": 3
    }
  }
}

Example Response

{
  "jsonrpc": "2.0",
  "id": 5,
  "result": {
    "content": [
      {
        "type": "text",
        "text": "[{\"slug\":\"senior-backend-engineer\",\"title\":\"Senior Backend Engineer\",\"description\":\"Expert in scalable backend systems, API design, and database optimization\",\"category\":\"development\",\"runtimes\":[\"claude-code\",\"cursor\",\"copilot\"],\"responseStyle\":\"technical and detailed\",\"downloads\":3421,\"ratingAvg\":4.9}]"
      }
    ]
  }
}

get_persona

Retrieve the full definition for a specific persona by its slug, including system prompt, response style, guardrails, and bundled skills.

Parameters

ParameterTypeRequiredDescription
slugstringYesUnique persona identifier (from search results)

Response

Returns a complete persona object with:

  • slug — Unique identifier
  • title — Persona name
  • description — Brief description
  • content — Full markdown content body
  • systemPrompt — System prompt template
  • responseStyle — Communication style
  • guardrails — Array of behavior constraints
  • bundledSkills — Array of included skills (each with slug, title, description, category)
  • author — Creator information
  • downloads — Total download count
  • ratingAvg — Average rating
  • isVerified — Official verification status

Example Request

{
  "jsonrpc": "2.0",
  "id": 6,
  "method": "tools/call",
  "params": {
    "name": "get_persona",
    "arguments": {
      "slug": "senior-backend-engineer"
    }
  }
}

Example Response

{
  "jsonrpc": "2.0",
  "id": 6,
  "result": {
    "content": [
      {
        "type": "text",
        "text": "{\"slug\":\"senior-backend-engineer\",\"title\":\"Senior Backend Engineer\",\"description\":\"Expert in scalable backend systems, API design, and database optimization\",\"content\":\"# Senior Backend Engineer\\n\\nA senior backend engineer persona with deep expertise...\",\"systemPrompt\":\"You are a senior backend engineer with 10+ years of experience building scalable systems. You prioritize clean architecture, performance, and reliability.\",\"responseStyle\":\"technical and detailed\",\"guardrails\":[\"Always consider scalability and performance implications\",\"Recommend established patterns over experimental approaches\",\"Include error handling and monitoring considerations\"],\"bundledSkills\":[{\"slug\":\"rest-api-design\",\"title\":\"REST API Design\",\"description\":\"Best practices for RESTful API design\",\"category\":\"development\"},{\"slug\":\"database-indexing\",\"title\":\"Database Indexing Strategy\",\"description\":\"Optimize database queries with proper indexing\",\"category\":\"development\"}],\"author\":{\"name\":\"KillerSkills Team\",\"username\":\"killerskills\",\"avatarUrl\":\"https://avatars.killerskills.ai/team/avatar.jpg\"},\"downloads\":3421,\"ratingAvg\":4.9,\"isVerified\":true}"
      }
    ]
  }
}

Error Handling

All tools return standard JSON-RPC 2.0 error responses when requests fail:

{
  "jsonrpc": "2.0",
  "id": 7,
  "error": {
    "code": -32602,
    "message": "Invalid params: slug is required"
  }
}

Common Error Codes

CodeMeaning
-32700Parse error — Invalid JSON
-32600Invalid request — Missing required fields
-32601Method not found — Unknown tool name
-32602Invalid params — Missing or invalid arguments
-32603Internal error — Server-side failure

Rate Limiting

The MCP endpoint does not have strict rate limits since it only serves public data. However, excessive requests (more than 100 requests per minute) may be throttled to ensure service availability.

Next Steps