Koskamo

Mobiscroll MCP

Provides version-stamped API knowledge over the Model Context Protocol, enabling AI agents to access Mobiscroll UI component schemas, examples, and Connect REST API documentation for building scheduling and booking workflows.

Endpoint and access

No sign-in to connect and list tools. Individual tools may still need a vendor account, credentials, or permissions; check the documented prerequisites.

Mobiscroll MCP logo, by MobiscrollVendor evidenceStreamable HTTPNo sign-inEndpoint checked 2026-11-01Operated by Mobiscroll
MCP endpoint (Streamable HTTP)
https://mcp.mobiscroll.com
Vendor documentation

What you can do with it

  • Access Mobiscroll UI component schemas
  • Retrieve Connect REST API documentation
  • View runnable examples for scheduling interfaces

Source and maintenance

Vendor evidenceRegistry 1.2.3

Protocol and capabilities

Server
mobiscroll-mcp-server 2.0.2
MCP protocol
2025-06-18
Tools
14 advertised
Resources
Not advertised
Resource templates
Not advertised
Prompts
Not advertised
Server-advertised capabilities
{
  "tools": {
    "listChanged": true
  }
}

Server-provided instructions

Untrusted server output shown for inspection. It is not Koskamo guidance and is excluded from knowledge search.

Mobiscroll UI components (v5 and v6; react, angular, vue, js for plain JavaScript, jquery) and Mobiscroll Connect (the calendar REST API and its SDKs). UI components: 1. Call resolveEnvironment first, with the raw text of the project's package.json. Use the framework and major it returns in every other call. 2. If you don't know the component id, call listComponents. The Eventcalendar takes a view suffix: eventcalendar.base, .agenda, .calendarview, .scheduler or .timeline. 3. Call getComponentSchema without names to get the index, then with names for the entities you will use. Use only APIs it returns; an entity marked deprecated names its replacement. 4. Prefer adapting an example: searchExamples, then getExampleById for the one you pick. relatedExamples names similar ones. 5. Call validateCode on your code before you present it. 6. Never guess a Mobiscroll API. If the schema and the examples don't cover something, say so. Connect: 1. Call resolveConnectEnvironment first, with the project's dependency manifest. 2. REST endpoints: listConnectEndpoints, getConnectEndpointSchema. SDK methods: listConnectSdkMethods, getConnectSdkMethod. searchConnect finds both by keyword, mapConnectEndpointToSdk turns an endpoint into the SDK call, and getConnectErrorTaxonomy covers error handling. 3. Never guess endpoints or SDK signatures.

Tools

14 advertised

resolveEnvironment — Resolve Mobiscroll UI Environment
Advertised by the server during the last successful anonymous check.
Advertised read-only

Resolves which Mobiscroll framework and major version a project uses, from the contents of its package.json. This server runs remotely and has no access to the local filesystem, so the file contents are passed in as packageJsonContent. Returns the framework and major version that the other tools in this server take as arguments.

resolveEnvironment input schema
{
  "type": "object",
  "$schema": "http://json-schema.org/draft-07/schema#",
  "properties": {
    "framework": {
      "enum": [
        "react",
        "angular",
        "vue",
        "js",
        "jquery"
      ],
      "type": "string",
      "description": "Only for the no-package.json path, and only together with noPackageJsonReason. Do NOT use this to skip reading an existing package.json - passing framework without noPackageJsonReason is rejected."
    },
    "packageJsonContent": {
      "type": "string",
      "description": "REQUIRED (raw file text). The full raw content of the project's package.json - the repository root, or the nearest one above the file you are editing. Read the file from the workspace and pass its content here. In a monorepo, use the package.json that declares the @mobiscroll/* dependency."
    },
    "noPackageJsonReason": {
      "enum": [
        "cdn",
        "no-package-json-found-after-search"
      ],
      "type": "string",
      "description": "Set ONLY after searching the workspace and confirming NO package.json exists (repo root or any parent of the edited file). 'cdn' = Mobiscroll loaded via a script tag; 'no-package-json-found-after-search' = you searched and found none. Required (with framework) to use the no-package.json path."
    }
  }
}
resolveEnvironment annotations
{
  "title": "Resolve Mobiscroll UI Environment",
  "readOnlyHint": true,
  "openWorldHint": false,
  "idempotentHint": true,
  "destructiveHint": false
}
listComponents — List Mobiscroll Components
Advertised by the server during the last successful anonymous check.
Advertised read-only

Returns all available Mobiscroll UI components for a given framework and major version, with a short description and entity count for each.

listComponents input schema
{
  "type": "object",
  "$schema": "http://json-schema.org/draft-07/schema#",
  "required": [
    "framework",
    "major"
  ],
  "properties": {
    "major": {
      "type": "number",
      "description": "Major version (e.g., 5, 6)"
    },
    "framework": {
      "enum": [
        "react",
        "angular",
        "vue",
        "js",
        "jquery"
      ],
      "type": "string",
      "description": "Framework to list components for. Use \"js\" for plain JavaScript (@mobiscroll/javascript package)."
    }
  }
}
listComponents annotations
{
  "title": "List Mobiscroll Components",
  "readOnlyHint": true,
  "openWorldHint": false,
  "idempotentHint": true,
  "destructiveHint": false
}
getComponentSchema — Get Component API Schema
Advertised by the server during the last successful anonymous check.
Advertised read-only

Returns the API schema (options, events, methods, renderers) for a Mobiscroll component. Two-step, token-efficient flow: (1) call WITHOUT names to get a compact index - every entity as name + kind + tsType + a one-line summary. (2) Review the index, then call AGAIN with names:[...] to get the full details (complete description, default value, related entities) for only the entities you will actually use. Optionally pass kind to narrow to one entity type. The full schema is large, so prefer this two-step flow over pulling everything. Deprecated entities are marked deprecated: true in the index, with their replacement in the summary; don't use them in new code.

getComponentSchema input schema
{
  "type": "object",
  "$schema": "http://json-schema.org/draft-07/schema#",
  "required": [
    "component",
    "framework",
    "major"
  ],
  "properties": {
    "kind": {
      "enum": [
        "option",
        "event",
        "method",
        "renderer",
        "localization"
      ],
      "type": "string",
      "description": "Optional filter: return only entities of this kind. Works with or without names."
    },
    "major": {
      "type": "number",
      "description": "Major version (e.g., 5, 6)"
    },
    "names": {
      "type": "array",
      "items": {
        "type": "string"
      },
      "description": "Detail tier: entity names (as shown in the index) to return in full. Omit on the first call to get the compact index; then call again with the handful of names you need. Names not found are reported in query.notFound."
    },
    "component": {
      "type": "string",
      "description": "Bare lowercase component ID, regardless of framework (e.g., \"datepicker\", \"select\", \"popup\"). Do NOT include framework-specific prefixes or casing - use \"eventcalendar\" not \"mbsc-eventcalendar\" (Angular), \"MbscEventcalendar\" (Vue), or \"Eventcalendar\" (React). For Eventcalendar, append the variant suffix: \"eventcalendar.base\", \"eventcalendar.agenda\", \"eventcalendar.scheduler\", \"eventcalendar.timeline\", \"eventcalendar.calendarview\". Use listComponents to discover valid IDs."
    },
    "framework": {
      "enum": [
        "react",
        "angular",
        "vue",
        "js",
        "jquery"
      ],
      "type": "string",
      "description": "Framework to get the schema for. Use \"js\" for plain JavaScript (@mobiscroll/javascript package)."
    }
  }
}
getComponentSchema annotations
{
  "title": "Get Component API Schema",
  "readOnlyHint": true,
  "openWorldHint": false,
  "idempotentHint": true,
  "destructiveHint": false
}
searchExamples — Search Mobiscroll Examples
Advertised by the server during the last successful anonymous check.
Advertised read-only

Search for Mobiscroll examples by query, framework, major version, and component filters. Supports multi-keyword queries — all keywords must match (AND logic). Results are sorted by relevance (title matches rank highest).

searchExamples input schema
{
  "type": "object",
  "$schema": "http://json-schema.org/draft-07/schema#",
  "required": [
    "framework",
    "major"
  ],
  "properties": {
    "major": {
      "type": "number",
      "description": "Major version to search in"
    },
    "query": {
      "type": "string",
      "description": "Search query — space-separated keywords, all must match (AND). Searches title, tags, component names, and description."
    },
    "framework": {
      "enum": [
        "react",
        "angular",
        "vue",
        "js",
        "jquery"
      ],
      "type": "string",
      "description": "Framework to search in. Use \"js\" for plain JavaScript (@mobiscroll/javascript package)."
    },
    "components": {
      "type": "array",
      "items": {
        "type": "string"
      },
      "description": "Filter by component. Pass the bare lowercase component IDs as returned by listComponents / getComponentSchema (e.g. \"popup\", \"select\", \"input\", \"checkbox\", \"datepicker\", \"eventcalendar\"). OR logic across the array. For Eventcalendar you may append a view suffix to narrow to that view - \"eventcalendar.agenda\", \"eventcalendar.scheduler\", \"eventcalendar.timeline\", \"eventcalendar.calendarview\"; bare \"eventcalendar\" (or \"eventcalendar.base\") returns all views."
    },
    "maxResults": {
      "type": "number",
      "description": "Maximum number of results to return (default: 20). Applies to every filter combination - component-only, query-only, or both. The response reports \"total\" (matches before the cap) and \"returned\"; raise maxResults to fetch more."
    }
  }
}
searchExamples annotations
{
  "title": "Search Mobiscroll Examples",
  "readOnlyHint": true,
  "openWorldHint": false,
  "idempotentHint": true,
  "destructiveHint": false
}
getExampleById — Get Example by ID
Advertised by the server during the last successful anonymous check.
Advertised read-only

Get a complete example by ID, including source files, description, and implementation instructions (when available). The ID of a retired example returns the example that replaces it, with redirectedFrom and a notice.

getExampleById input schema
{
  "type": "object",
  "$schema": "http://json-schema.org/draft-07/schema#",
  "required": [
    "exampleId",
    "framework",
    "major"
  ],
  "properties": {
    "major": {
      "type": "number",
      "description": "Major version of the example"
    },
    "exampleId": {
      "type": "string",
      "description": "Example ID (from search results)"
    },
    "framework": {
      "enum": [
        "react",
        "angular",
        "vue",
        "js",
        "jquery"
      ],
      "type": "string",
      "description": "Framework of the example. Use \"js\" for plain JavaScript (@mobiscroll/javascript package)."
    }
  }
}
getExampleById annotations
{
  "title": "Get Example by ID",
  "readOnlyHint": true,
  "openWorldHint": false,
  "idempotentHint": true,
  "destructiveHint": false
}
validateCode — Validate Mobiscroll Code
Advertised by the server during the last successful anonymous check.
Advertised read-only

Validate a code snippet against the component schema, checking for unknown props/events/methods and deprecated usage. Static analysis only — no execution.

validateCode input schema
{
  "type": "object",
  "$schema": "http://json-schema.org/draft-07/schema#",
  "required": [
    "component",
    "framework",
    "major",
    "snippet"
  ],
  "properties": {
    "major": {
      "type": "number",
      "description": "Major version to validate against"
    },
    "snippet": {
      "type": "string",
      "description": "Code snippet to validate"
    },
    "component": {
      "type": "string",
      "description": "Bare lowercase component ID, regardless of framework (e.g., \"datepicker\", \"select\", \"popup\"). Do NOT include framework-specific prefixes or casing — use \"eventcalendar\" not \"mbsc-eventcalendar\" (Angular), \"MbscEventcalendar\" (Vue), or \"Eventcalendar\" (React). For Eventcalendar, append the variant suffix: \"eventcalendar.base\", \"eventcalendar.agenda\", \"eventcalendar.scheduler\", \"eventcalendar.timeline\", \"eventcalendar.calendarview\". Use listComponents to discover valid IDs."
    },
    "framework": {
      "enum": [
        "react",
        "angular",
        "vue",
        "js",
        "jquery"
      ],
      "type": "string",
      "description": "Framework of the snippet. Use \"js\" for plain JavaScript (@mobiscroll/javascript package)."
    }
  }
}
validateCode annotations
{
  "title": "Validate Mobiscroll Code",
  "readOnlyHint": true,
  "openWorldHint": false,
  "idempotentHint": true,
  "destructiveHint": false
}
resolveConnectEnvironment — Resolve Mobiscroll Connect Environment
Advertised by the server during the last successful anonymous check.
Advertised read-only

Resolves which Mobiscroll Connect SDK (language and version) a project depends on, from the contents of its dependency manifest, and returns the Connect API and SDK versions this server documents. This server runs remotely and has no access to the local filesystem, so the manifest contents are passed in as manifestContent.

resolveConnectEnvironment input schema
{
  "type": "object",
  "$schema": "http://json-schema.org/draft-07/schema#",
  "properties": {
    "manifestContent": {
      "type": "string",
      "description": "Raw content of the project dependency manifest: package.json, pyproject.toml, composer.json, *.csproj, pom.xml, go.mod, or Gemfile. Read the file from the workspace and pass its content here."
    }
  }
}
resolveConnectEnvironment annotations
{
  "title": "Resolve Mobiscroll Connect Environment",
  "readOnlyHint": true,
  "openWorldHint": false,
  "idempotentHint": true,
  "destructiveHint": false
}
listConnectEndpoints — List Connect REST Endpoints
Advertised by the server during the last successful anonymous check.
Advertised read-only

Lists all Mobiscroll Connect REST API endpoints (method, path, summary, auth). Use getConnectEndpointSchema for full parameter/response detail of one endpoint.

listConnectEndpoints input schema
{
  "type": "object",
  "$schema": "http://json-schema.org/draft-07/schema#",
  "properties": {}
}
listConnectEndpoints annotations
{
  "title": "List Connect REST Endpoints",
  "readOnlyHint": true,
  "openWorldHint": false,
  "idempotentHint": true,
  "destructiveHint": false
}
getConnectEndpointSchema — Get Connect Endpoint Schema
Advertised by the server during the last successful anonymous check.
Advertised read-only

Returns the full schema of a single Connect REST endpoint: method, path, parameters (query/body) with types, authentication, response statuses, and examples. Resolve by endpointId (from listConnectEndpoints) or by method + path. Describes the endpoint from documentation; does not call it. Documents the Mobiscroll Connect REST API: https://mobiscroll.com/docs/connect/api/overview

getConnectEndpointSchema input schema
{
  "type": "object",
  "$schema": "http://json-schema.org/draft-07/schema#",
  "properties": {
    "path": {
      "type": "string",
      "description": "Endpoint path relative to the API base, e.g. \"/events\"."
    },
    "method": {
      "type": "string",
      "description": "HTTP method, e.g. \"GET\". Use with path if endpointId is unknown."
    },
    "endpointId": {
      "type": "string",
      "description": "Endpoint id from listConnectEndpoints, e.g. \"get-events\"."
    }
  }
}
getConnectEndpointSchema annotations
{
  "title": "Get Connect Endpoint Schema",
  "readOnlyHint": true,
  "openWorldHint": false,
  "idempotentHint": true,
  "destructiveHint": false
}
listConnectSdkMethods — List Connect SDK Methods
Advertised by the server during the last successful anonymous check.
Advertised read-only

Lists the resources (auth, calendars, events) and methods exposed by one language's Connect SDK. Use getConnectSdkMethod for the full signature/doc of one method.

listConnectSdkMethods input schema
{
  "type": "object",
  "$schema": "http://json-schema.org/draft-07/schema#",
  "required": [
    "language"
  ],
  "properties": {
    "language": {
      "enum": [
        "node",
        "python",
        "php",
        "dotnet",
        "java",
        "go",
        "ruby"
      ],
      "type": "string",
      "description": "SDK language to list methods for."
    }
  }
}
listConnectSdkMethods annotations
{
  "title": "List Connect SDK Methods",
  "readOnlyHint": true,
  "openWorldHint": false,
  "idempotentHint": true,
  "destructiveHint": false
}
getConnectSdkMethod — Get Connect SDK Method
Advertised by the server during the last successful anonymous check.
Advertised read-only

Returns the full schema of one SDK method in one language: signature, parameters, return type, doc comment, and example. Identify the method by canonical id ("events.create"), by the language method name ("ListAsync"), or "resource.method".

getConnectSdkMethod input schema
{
  "type": "object",
  "$schema": "http://json-schema.org/draft-07/schema#",
  "required": [
    "language",
    "method"
  ],
  "properties": {
    "method": {
      "type": "string",
      "description": "Canonical id, method name, or \"resource.method\"."
    },
    "language": {
      "enum": [
        "node",
        "python",
        "php",
        "dotnet",
        "java",
        "go",
        "ruby"
      ],
      "type": "string",
      "description": "SDK language."
    }
  }
}
getConnectSdkMethod annotations
{
  "title": "Get Connect SDK Method",
  "readOnlyHint": true,
  "openWorldHint": false,
  "idempotentHint": true,
  "destructiveHint": false
}
searchConnect — Search Connect API and SDKs
Advertised by the server during the last successful anonymous check.
Advertised read-only

Keyword search across Connect REST endpoints and SDK methods. Space-separated keywords, all must match (AND). Results sorted by relevance.

searchConnect input schema
{
  "type": "object",
  "$schema": "http://json-schema.org/draft-07/schema#",
  "required": [
    "query"
  ],
  "properties": {
    "kind": {
      "enum": [
        "endpoint",
        "operation",
        "all"
      ],
      "type": "string",
      "description": "What to search (default: all)."
    },
    "query": {
      "type": "string",
      "description": "Space-separated keywords (AND logic)."
    },
    "language": {
      "enum": [
        "node",
        "python",
        "php",
        "dotnet",
        "java",
        "go",
        "ruby"
      ],
      "type": "string",
      "description": "Restrict SDK matches to one language. REST endpoints always searched."
    },
    "maxResults": {
      "type": "number",
      "description": "Max results (default: 20)."
    }
  }
}
searchConnect annotations
{
  "title": "Search Connect API and SDKs",
  "readOnlyHint": true,
  "openWorldHint": false,
  "idempotentHint": true,
  "destructiveHint": false
}
mapConnectEndpointToSdk — Map Connect Endpoint to SDK Call
Advertised by the server during the last successful anonymous check.
Advertised read-only

Given a Connect REST endpoint, returns the equivalent SDK call (method name, signature, example) in each language. Resolve by endpointId or by method + path. Optionally restrict to one language. Describes the endpoint and SDK call from documentation; does not call either. Documents the Mobiscroll Connect REST API: https://mobiscroll.com/docs/connect/api/overview

mapConnectEndpointToSdk input schema
{
  "type": "object",
  "$schema": "http://json-schema.org/draft-07/schema#",
  "properties": {
    "path": {
      "type": "string",
      "description": "Endpoint path relative to the API base."
    },
    "method": {
      "type": "string",
      "description": "HTTP method. Use with path if endpointId is unknown."
    },
    "language": {
      "enum": [
        "node",
        "python",
        "php",
        "dotnet",
        "java",
        "go",
        "ruby"
      ],
      "type": "string",
      "description": "Restrict to one language (default: all)."
    },
    "endpointId": {
      "type": "string",
      "description": "Endpoint id from listConnectEndpoints."
    }
  }
}
mapConnectEndpointToSdk annotations
{
  "title": "Map Connect Endpoint to SDK Call",
  "readOnlyHint": true,
  "openWorldHint": false,
  "idempotentHint": true,
  "destructiveHint": false
}
getConnectErrorTaxonomy — Get Connect Error Taxonomy
Advertised by the server during the last successful anonymous check.
Advertised read-only

Returns the shared Connect error taxonomy: each error category with its HTTP status and the language-idiomatic exception type. Optionally filter the exception column to one language.

getConnectErrorTaxonomy input schema
{
  "type": "object",
  "$schema": "http://json-schema.org/draft-07/schema#",
  "properties": {
    "language": {
      "enum": [
        "node",
        "python",
        "php",
        "dotnet",
        "java",
        "go",
        "ruby"
      ],
      "type": "string",
      "description": "Filter the exception column to one language."
    }
  }
}
getConnectErrorTaxonomy annotations
{
  "title": "Get Connect Error Taxonomy",
  "readOnlyHint": true,
  "openWorldHint": false,
  "idempotentHint": true,
  "destructiveHint": false
}

Prompts

Not advertised

No prompt definitions available.

Resources

Not advertised

No resource definitions available.

30-day availability

Aggregated from read-only remote checks; this is not a tool-execution or security guarantee.

Successful checks
1 of 1 (100%)
Average latency
702 ms
95th percentile latency
702 ms

Maintenance history

Public check and source-refresh events. Editorial and ownership records remain private.

  • · probe · passed · 702 ms · metadata changed · 14 tool(s)

Connect from your client

Each snippet registers the same endpoint; pick the client you use.

This server is operated by the named third party. Listing and endpoint checks are not an endorsement or a security audit. Review the operator's permissions, terms, and data handling before connecting. How listings are checked and corrected.

Claude Code

Run this once in a terminal. It registers the remote server. Use --scope project to write .mcp.json for the repo.
Claude Code configuration
claude mcp add --transport http mobiscroll-mcp https://mcp.mobiscroll.com

Codex

Run this once. Codex stores MCP servers in ~/.codex/config.toml (or .codex/config.toml in a trusted project).
Codex configuration
codex mcp add mobiscroll-mcp --url https://mcp.mobiscroll.com

Cursor

Merge this server into .cursor/mcp.json in your project, then enable mobiscroll-mcp in your MCP settings.
Cursor configuration
{
  "mcpServers": {
    "mobiscroll-mcp": {
      "url": "https://mcp.mobiscroll.com"
    }
  }
}

Cline

Merge this into cline_mcp_settings.json (Cline → MCP Servers → Configure).
Cline configuration
{
  "mcpServers": {
    "mobiscroll-mcp": {
      "type": "streamableHttp",
      "url": "https://mcp.mobiscroll.com",
      "disabled": false
    }
  }
}

VS Code

Merge this server into .vscode/mcp.json. Use MCP: List Servers to start mobiscroll-mcp and inspect its tools.
VS Code configuration
{
  "servers": {
    "mobiscroll-mcp": {
      "type": "http",
      "url": "https://mcp.mobiscroll.com"
    }
  }
}

Gemini CLI

Run this once. It writes .gemini/settings.json in the current project; pass --scope user for ~/.gemini/settings.json.
Gemini CLI configuration
gemini mcp add --transport http mobiscroll-mcp https://mcp.mobiscroll.com

Claude Desktop

Merge this into claude_desktop_config.json (macOS: ~/Library/Application Support/Claude/, Windows: %APPDATA%\Claude\), then restart Claude Desktop.
Claude Desktop configuration
{
  "mcpServers": {
    "mobiscroll-mcp": {
      "url": "https://mcp.mobiscroll.com"
    }
  }
}

Windsurf

Merge this into ~/.codeium/windsurf/mcp_config.json, then refresh MCP in Cascade. Windsurf remote servers use serverUrl, not url.
Windsurf configuration
{
  "mcpServers": {
    "mobiscroll-mcp": {
      "serverUrl": "https://mcp.mobiscroll.com"
    }
  }
}

Let your agent find its tools

Find servers like Mobiscroll MCP from your agent. Add Koskamo once to search the index for endpoints, access requirements, and client setup. Public discovery needs no key.

Do you run Mobiscroll MCP?

Prove ownership with a DNS record, a well-known file, or your Official MCP Registry entry, and your edits publish immediately. Proofs are re-checked weekly; admins can still hide or remove a listing.

Claim this listing