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
| Parameter | Type | Required | Description |
|---|---|---|---|
query | string | No | Search term to match against skill title, description, and tags |
category | string | No | Filter by category (development, testing, documentation, etc.) |
runtime | string | No | Filter by compatible runtime (claude-code, cursor, copilot, etc.) |
limit | number | No | Maximum results to return (default: 20, max: 100) |
Response
Returns an array of skills with the following fields:
slug— Unique identifier for the skilltitle— Skill namedescription— Brief descriptioncategory— Category classificationruntimes— Array of compatible runtimesdownloads— Total download countratingAvg— 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
| Parameter | Type | Required | Description |
|---|---|---|---|
slug | string | Yes | Unique skill identifier (from search results) |
Response
Returns a complete skill object with:
slug— Unique identifiertitle— Skill namedescription— Brief descriptioncontent— Full markdown instruction bodycategory— Category classificationtags— Array of topic tagsruntimes— Array of compatible runtimesauthor— Creator information (name, username, avatarUrl)downloads— Total download countratingAvg— 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
| Parameter | Type | Required | Description |
|---|---|---|---|
query | string | No | Search term to match against persona name, description, and tags |
category | string | No | Filter by category (development, writing, data, etc.) |
runtime | string | No | Filter by compatible runtime |
limit | number | No | Maximum results to return (default: 20, max: 100) |
Response
Returns an array of personas with:
slug— Unique identifier for the personatitle— Persona namedescription— Brief descriptioncategory— Category classificationruntimes— Array of compatible runtimesresponseStyle— Communication style (concise, detailed, etc.)downloads— Total download countratingAvg— 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
| Parameter | Type | Required | Description |
|---|---|---|---|
slug | string | Yes | Unique persona identifier (from search results) |
Response
Returns a complete persona object with:
slug— Unique identifiertitle— Persona namedescription— Brief descriptioncontent— Full markdown content bodysystemPrompt— System prompt templateresponseStyle— Communication styleguardrails— Array of behavior constraintsbundledSkills— Array of included skills (each with slug, title, description, category)author— Creator informationdownloads— Total download countratingAvg— Average ratingisVerified— 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
| Code | Meaning |
|---|---|
-32700 | Parse error — Invalid JSON |
-32600 | Invalid request — Missing required fields |
-32601 | Method not found — Unknown tool name |
-32602 | Invalid params — Missing or invalid arguments |
-32603 | Internal 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
- Connection Guide — Configure your AI agent to use KillerSkills
- MCP Overview — Learn more about the Model Context Protocol