Claspine

Claspine docs, API reference and code checks for AI agents: guides, recipes, errors, upgrades.

Should I use this

Quality & Safety

A
Description quality
98%
Schema completeness
95%
Naming quality
90%
Poisoning risk
100%
Permission match
100%
Protocol compliance
100%

Based on automated analysis of tool definitions and protocol compliance.

Context Cost

~2,229Tokens (tool definitions)
~1.1 KBTypical response size
Moderate attention impact (1.74% of 128k context)

This is the approximate number of tokens consumed each time the server's tools are loaded into a model's context. Higher counts reduce the attention available for other tasks.

Install

One-Click Install

Add this to your `claude_desktop_config.json` file:

{
  "mcpServers": {
    "claspine": {
      "command": "npx",
      "args": [
        "@grahmur-org/claspine-cli"
      ]
    }
  }
}

Runnable packages

npm@grahmur-org/claspine-cli0.31.0stdio

Remote endpoints

https://api.claspine.com/mcpstreamable-http

What it can do

Tool inventory

Tools (12)

🟢 Read-only🟡 Write🔴 Delete⚪ Unknown
🟢what_runs_where(capability)

Which Claspine capabilities exist on Claspine Atlas, the self-hosted engine (any language over HTTP) and self-hosted Spring Boot. Check this before planning any Claspine integration: they differ (for example, Claspine Atlas has no sign-in, permissions or push).

Input Schema

{
  "type": "object",
  "properties": {
    "capability": {
      "type": "string",
      "description": "Optional words to filter by, for example \"sign-in\" or \"payments\"."
    }
  },
  "additionalProperties": false
}
🟢plan_integration(stack, project, form, features, login, ...)

An exact, ordered plan for adding Claspine to this project: what the person must do first, then each step with the files and settings to change (current release pinned) and how to prove it worked. Call it after you know the stack, new or existing, and the person's decisions (Atlas or self-hosted, whose login, which features), and follow it step by step.

Input Schema

{
  "type": "object",
  "properties": {
    "stack": {
      "type": "string",
      "description": "The backend.",
      "enum": [
        "spring-boot",
        "node",
        "python",
        "go",
        "other"
      ]
    },
    "project": {
      "type": "string",
      "description": "new: little or no code yet; existing: an app that already runs.",
      "enum": [
        "new",
        "existing"
      ]
    },
    "form": {
      "type": "string",
      "description": "Where Claspine runs: the person's choice.",
      "enum": [
        "atlas",
        "self-hosted"
      ]
    },
    "features": {
      "type": "array",
      "description": "What to add first.",
      "items": {
        "type": "string",
        "enum": [
          "sign-in",
          "email",
          "sms",
          "whatsapp",
          "push",
          "files",
          "ai",
          "payments"
        ]
      }
    },
    "login": {
      "type": "string",
      "description": "Self-hosted: keep the app's own login, or move sign-in to Claspine (default: claspine when sign-in is a feature).",
      "enum": [
        "keep",
        "claspine"
      ]
    },
    "database": {
      "type": "string",
      "description": "Self-hosted: where Claspine keeps its own tables (default postgres).",
      "enum": [
        "postgres",
        "mongo",
        "firestore"
      ]
    },
    "uses_spring_security": {
      "type": "boolean",
      "description": "Spring Boot: the project already uses Spring Security."
    },
    "current_version": {
      "type": "string",
      "description": "Only if the project already uses Claspine: its version now (grahmur.platform.version or the BOM version), for example 0.12.0. The plan then upgrades first."
    }
  },
  "required": [
    "stack",
    "project",
    "form",
    "features"
  ],
  "additionalProperties": false
}
🟢search_docs(query, limit)

Search Claspine's guides, recipes, capability table and error fixes with a plain question or keywords. Returns the best matches first, with links; follow up with get_guide or get_recipe.

Input Schema

{
  "type": "object",
  "properties": {
    "query": {
      "type": "string",
      "description": "A question or keywords, for example \"add sign-in and email to my existing Spring Boot app\"."
    },
    "limit": {
      "type": "integer",
      "description": "Maximum results, 1 to 10 (default 5).",
      "minimum": 1
    }
  },
  "required": [
    "query"
  ],
  "additionalProperties": false
}
🟢get_guide(slug)

The full text of one Claspine guide: steps, code, settings, safety notes and troubleshooting.

Input Schema

{
  "type": "object",
  "properties": {
    "slug": {
      "type": "string",
      "description": "The guide's slug, for example \"sign-in-engine\" (see search_docs)."
    }
  },
  "required": [
    "slug"
  ],
  "additionalProperties": false
}
🟢get_recipe(task, form, language)

Copy-ready HTTP calls for a common task on Claspine Atlas or the self-hosted engine, in curl, Node.js, Python, Go or Java, checked against Claspine's API on every build. Without task: the list.

Input Schema

{
  "type": "object",
  "properties": {
    "task": {
      "type": "string",
      "description": "Recipe slug or words, for example \"file-upload\" or \"refund\"."
    },
    "form": {
      "type": "string",
      "description": "Where Claspine runs (default: the first the recipe supports).",
      "enum": [
        "cloud",
        "engine"
      ]
    },
    "language": {
      "type": "string",
      "description": "Code language (default curl; \"all\" for every language).",
      "enum": [
        "curl",
        "node",
        "python",
        "go",
        "java",
        "all"
      ]
    }
  },
  "additionalProperties": false
}
🟢upgrade_notes(from, to)

Every Claspine upgrade note after one version up to another, oldest first, with what changed, the checklist for product code and what to do before deploying. Read them all before changing the Claspine version.

Input Schema

{
  "type": "object",
  "properties": {
    "from": {
      "type": "string",
      "description": "The version the application uses now, for example 0.26.0."
    },
    "to": {
      "type": "string",
      "description": "The target version (default: the latest release)."
    }
  },
  "required": [
    "from"
  ],
  "additionalProperties": false
}
🟢check_upgrade(current, target, files)

Finds the Claspine version in project files (pom.xml, build.gradle, package.json, docker-compose.yml) or takes it as given, and lists the checklist items of every upgrade note up to the target.

Input Schema

{
  "type": "object",
  "properties": {
    "current": {
      "type": "string",
      "description": "Current version, if known."
    },
    "target": {
      "type": "string",
      "description": "Target version (default: the latest release)."
    },
    "files": {
      "type": "array",
      "description": "Project files to read the current version from (path and content).",
      "items": {
        "type": "object",
        "properties": {
          "path": {
            "type": "string"
          },
          "content": {
            "type": "string"
          }
        },
        "required": [
          "path",
          "content"
        ]
      }
    }
  },
  "additionalProperties": false
}
🟢api_reference(path, method)

The published HTTP contract shared by Claspine Atlas and the self-hosted engine (paths under /api/v1). Without path: every operation. With path (and method): parameters, request body and responses with schemas resolved.

Input Schema

{
  "type": "object",
  "properties": {
    "path": {
      "type": "string",
      "description": "For example /payments/orders/{orderId}/refund."
    },
    "method": {
      "type": "string",
      "description": "HTTP method (default: the path's first).",
      "enum": [
        "GET",
        "POST",
        "PUT",
        "PATCH",
        "DELETE"
      ]
    }
  },
  "additionalProperties": false
}
🟢java_api(capability, type)

The public Java types of a Claspine capability (its api package) and of the foundation, with methods and record fields, from the current platform build. Without arguments: the capabilities.

Input Schema

{
  "type": "object",
  "properties": {
    "capability": {
      "type": "string",
      "description": "For example payments, files, llm, notifications, authorization, foundation."
    },
    "type": {
      "type": "string",
      "description": "A type name, for example Payments or RefundPaymentCommand."
    }
  },
  "additionalProperties": false
}
🟢explain_error(code)

What a Claspine error code means and how to fix it: HTTP status, the messages it is raised with, where, and the fix for common ones. Every Claspine error response carries its code.

Input Schema

{
  "type": "object",
  "properties": {
    "code": {
      "type": "string",
      "description": "The error's code, for example HOST_NOT_AVAILABLE."
    }
  },
  "required": [
    "code"
  ],
  "additionalProperties": false
}
🟢check_code(files, diff)

Runs Claspine's Agent Shield rules on files or a unified diff: hardcoded or client-exposed secrets, SQL built from strings, unscoped tenant queries, secrets in logs, buffered uploads, imports of platform internals. Returns file, line, rule and the fix. Code is analysed in memory and not stored. A clean result is not proof of safety; Spring Boot builds also run ProductBoundaryTest.

Input Schema

{
  "type": "object",
  "properties": {
    "files": {
      "type": "array",
      "description": "Files to check (path decides browser vs server code).",
      "items": {
        "type": "object",
        "properties": {
          "path": {
            "type": "string"
          },
          "content": {
            "type": "string"
          }
        },
        "required": [
          "path",
          "content"
        ]
      }
    },
    "diff": {
      "type": "string",
      "description": "A unified diff (only added lines are checked)."
    }
  },
  "additionalProperties": false
}
🟢check_config(content, format)

Checks application.yml / application.properties or the engine's environment variables: empty values that switch providers on, sandbox sign-in in STAGING/PRODUCTION, IP addresses as hosts, secrets written into settings, and misspelled setting names. Content is not stored.

Input Schema

{
  "type": "object",
  "properties": {
    "content": {
      "type": "string",
      "description": "The settings file's content."
    },
    "format": {
      "type": "string",
      "description": "yaml, properties or env (default: guessed).",
      "enum": [
        "yaml",
        "properties",
        "env"
      ]
    }
  },
  "required": [
    "content"
  ],
  "additionalProperties": false
}

Community

Rate this Server

Evidence

Recent observations

verifiedversion not recorded12 tools