AI Integration
Mobiscroll provides a set of machine-readable documentation files and AI behavior rules that enable coding assistants to generate accurate, framework-specific code. These files prevent common AI issues like hallucinated APIs, mixed framework imports, and outdated patterns.
Why AI integration?
AI coding assistants work best when they have access to structured, authoritative documentation. Without it, they often:
- Hallucinate APIs — invent option names, events, or types that don't exist
- Mix frameworks — use React hooks or Angular dependency injection instead of Vue composition API
- Reference outdated versions — generate v5 code when the current version is v6
- Ignore framework conventions — skip component registration or omit the CSS import
The Mobiscroll AI integration solves these problems by providing documentation optimized for AI consumption, combined with behavior rules that enforce framework isolation and correct API usage.
Architecture overview
The integration consists of three layers:
Data layer — llms files
Machine-readable documentation files containing the complete Mobiscroll API reference and guides, one per framework. These are the source of truth that AI tools read to answer questions.
| File | Description |
|---|---|
llms-vue-full.txt | Complete Vue documentation |
llms-vue.txt | Vue table of contents (links to individual pages) |
llms-icons.txt | Icon names (IcoMoon, Font Awesome, Ionicons) — all frameworks |
You don't need to download or host these files — the rules files and the Claude Code plugin reference them directly and fetch their content automatically.
Rules layer — rules files
Rules files provide Mobiscroll context to Cursor and GitHub Copilot only. Claude Code uses the Mobiscroll plugin instead — no manual file setup needed.
Two approaches are available:
- Option A — file-based context loading. A rules file (
.mdcfor Cursor,.instructions.mdfor Copilot) contains API documentation and behavior rules. No MCP server required. - Option B — live schema fetching via MCP server. Extended rule files instruct the AI to call the Mobiscroll MCP server for live component schema lookups on each generation. Suited for interactive coding agents that need per-query precision.
Choose based on your preference and setup.
Files
Option A — file-based rules:
| File | Format | For |
|---|---|---|
mobiscroll-vue.mdc | Cursor rule file | Cursor |
copilot-instructions/mobiscroll-vue.instructions.md | Copilot instruction file | GitHub Copilot |
Option B — extended rules with MCP:
| File | Format | For |
|---|---|---|
| mobiscroll-ui.mdc | Cursor extended rule (orchestrator) | Cursor |
| mobiscroll-ui-vue.mdc | Cursor extended rule (Vue) | Cursor |
| mobiscroll-ui-theming.mdc | Cursor extended rule (theming) | Cursor |
| mobiscroll-ui.instructions.md | Copilot extended instruction (orchestrator) | GitHub Copilot |
| mobiscroll-ui-vue.instructions.md | Copilot extended instruction (Vue) | GitHub Copilot |
| mobiscroll-ui-theming.instructions.md | Copilot extended instruction (theming) | GitHub Copilot |
Which tool uses which files?
| Tool | Approach | Files used |
|---|---|---|
| Cursor | Option A | mobiscroll-vue.mdc |
| Cursor | Option B | mobiscroll-ui.mdc, mobiscroll-ui-vue.mdc, mobiscroll-ui-theming.mdc |
| GitHub Copilot | Option A | mobiscroll-vue.instructions.md |
| GitHub Copilot | Option B | mobiscroll-ui.instructions.md, mobiscroll-ui-vue.instructions.md, mobiscroll-ui-theming.instructions.md |
Cursor setup
Step 1: Register documentation sources
Open Cursor Settings → Indexing & Docs and add the documentation source for your framework:
| Framework | Name | URL |
|---|---|---|
| Vue | Mobiscroll Vue | https://dev.mobiscroll.com/docs/llms-vue-full.txt |
Only register the source matching your use case. Do not register multiple sources — this prevents cross-domain contamination.
Step 2: Add behavior rules
Choose one approach — Option A works immediately with no additional setup; Option B adds live MCP schema lookups for higher accuracy but requires the MCP server to be configured.
Option A — .mdc rules file
Download the mobiscroll-vue.mdc file and place it in .cursor/rules/:
your-project/
├── .cursor/
│ └── rules/
│ └── mobiscroll-vue.mdc
├── src/
└── package.json
The .mdc file provides text-based API rules — no additional setup required.
Option B — Extended rule files + MCP (3 files)
Download the three extended rule files and place them in .cursor/rules/:
- mobiscroll-ui.mdc (orchestrator)
- mobiscroll-ui-vue.mdc (Vue conventions)
- mobiscroll-ui-theming.mdc (theming)
your-project/
├── .cursor/
│ └── rules/
│ ├── mobiscroll-ui.mdc
│ ├── mobiscroll-ui-vue.mdc
│ └── mobiscroll-ui-theming.mdc
├── src/
└── package.json
Unlike Option A, these rule files instruct Cursor's AI to call the Mobiscroll MCP server for live component schema lookups on each generation — so it always uses the current API instead of guessing from memory.
Rule activation
The extended .mdc files use alwaysApply: false with a description in their frontmatter. Cursor reads the description and activates the rule only when the context is relevant — the rule is not included in every message. You can also trigger it manually with @rule-name (e.g. @mobiscroll-ui). The .mdc format works in all Cursor modes including Agent mode.
Step 3: Configure MCP server (Optional)
Configure the Mobiscroll MCP server so the extended rules can call it for live schema lookups.
Create or edit .cursor/mcp.json in your project root:
{
"mcpServers": {
"mobiscroll": {
"url": "https://mcp.dev.mobiscroll.com/"
}
}
}
type fieldCursor infers the transport type from the URL. Do not add "type": "http" to Cursor's config — it causes an error.
your-project/
├── .cursor/
│ ├── mcp.json
│ └── rules/
│ ├── mobiscroll-ui.mdc
│ ├── mobiscroll-ui-vue.mdc
│ └── mobiscroll-ui-theming.mdc
├── src/
└── package.json
| Scope | Config file | Shared with team |
|---|---|---|
| project | .cursor/mcp.json in project root | Yes, if committed |
| global | ~/.cursor/mcp.json | No, all your projects |
Verify the connection: Open the Output panel in Cursor and select MCP Logs from the dropdown. A successful connection logs tool discovery messages for the mobiscroll server.
How it works
When asking Cursor about Mobiscroll, include @docs to ensure it reads the registered documentation:
@docs How do I set up a weekly scheduler with Mobiscroll?
@docs What options does the Eventcalendar timeline view accept?
GitHub Copilot setup
Step 1: Add behavior rules
Choose one approach — Option A works immediately with no additional setup; Option B adds live MCP schema lookups for higher accuracy but requires the MCP server to be configured.
Option A — .instructions.md rules file
Download the mobiscroll-vue.instructions.md file and place it in .github/instructions/:
your-project/
├── .github/
| └── instructions/
| └── mobiscroll-vue.instructions.md
├── src/
└── package.json
The .instructions.md file provides text-based API rules — no additional setup required.
Option B — Extended instruction files + MCP (3 files)
Download the three extended instruction files and place them in .github/instructions/:
- mobiscroll-ui.instructions.md (orchestrator)
- mobiscroll-ui-vue.instructions.md (Vue conventions)
- mobiscroll-ui-theming.instructions.md (theming)
your-project/
├── .github/
| └── instructions/
| ├── mobiscroll-ui.instructions.md
| ├── mobiscroll-ui-vue.instructions.md
| └── mobiscroll-ui-theming.instructions.md
├── src/
└── package.json
Step 2: Configure MCP server (Optional)
Configure the Mobiscroll MCP server so the extended instruction files can call it for live schema lookups.
Create or edit .vscode/mcp.json in your project root:
{
"servers": {
"mobiscroll": {
"type": "http",
"url": "https://mcp.dev.mobiscroll.com/"
}
}
}
"servers" not "mcpServers"VS Code uses "servers" as the root key — not "mcpServers" like Claude Code and Cursor. Using the wrong key silently breaks the config with no error message.
your-project/
├── .vscode/
│ └── mcp.json
├── .github/
│ └── instructions/
│ ├── mobiscroll-ui.instructions.md
│ ├── mobiscroll-ui-vue.instructions.md
│ └── mobiscroll-ui-theming.instructions.md
├── src/
└── package.json
| Scope | Config file | Shared with team |
|---|---|---|
| workspace | .vscode/mcp.json in project root | Yes, if committed |
| user profile | Opened via MCP: Open User Configuration | No, all your workspaces |
Verify the connection: Open the Command Palette and run MCP: List Servers. The mobiscroll server should appear with a connected status. A trust dialog appears on first use — approve it to allow the server to start.
Alternatively, open the Command Palette and run MCP: Add Server for a guided setup.
How it works
The instruction files with applyTo: "**" apply automatically to all Copilot Chat queries — no manual reference needed. Both options contain:
- Documentation URLs — point the AI to the correct framework docs
- Component mapping — map user intents (e.g., "scheduler") to the correct Mobiscroll APIs
- Rules — enforce correct package imports, CSS loading, and API usage
- Constraints — prevent cross-framework mixing and API hallucination
Ask Mobiscroll questions directly:
How do I set up a weekly scheduler with Mobiscroll?
What options does the Eventcalendar timeline view accept?
Claude Code setup
Install the Mobiscroll plugin for Claude Code. The plugin bundles framework coding skills and the MCP server in a single install — no per-project configuration files needed.
Step 1: Register the marketplace
Run this once in Claude Code to register the Mobiscroll plugin marketplace:
/plugin marketplace add acidb/mobiscroll-marketplace
Step 2: Install the plugin
/plugin install mobiscroll@mobiscroll
Step 3: Configure MCP server (Optional)
The plugin bundles the MCP server — no separate configuration is needed for most setups. To configure it manually or share it with your team:
claude mcp add --transport http mobiscroll https://mcp.dev.mobiscroll.com/
If you are using the Claude Visual Studio Code extension, the server will not appear unless it is added with project scope. See the next command below.
To share the server with your team automatically, use project scope:
claude mcp add --transport http --scope project mobiscroll https://mcp.dev.mobiscroll.com/
This creates or updates .mcp.json in your project root. You can also create that file manually:
{
"mcpServers": {
"mobiscroll": {
"type": "http",
"url": "https://mcp.dev.mobiscroll.com/"
}
}
}
| Scope | CLI flag | Config location | Shared with team |
|---|---|---|---|
| local (default) | --scope local | ~/.claude.json | No |
| project | --scope project | .mcp.json in project root | Yes, via version control |
| user | --scope user | ~/.claude.json | No, all your projects |
Use --scope project for team repos so everyone gets the MCP server automatically when they clone the project.
Verify the connection: Run /mcp inside Claude Code. The panel lists each connected server and its tool count. A healthy connection shows mobiscroll with at least one tool.
How it works
Once installed, the plugin provides:
- Skills —
mobiscroll-uiis the orchestrator skill that detects your framework (React, Angular, Vue, JavaScript, or jQuery) and loads the matching framework sub-skill. Theming questions are handled bymobiscroll-ui-theming. All skills are installed together. - MCP server — The bundled Mobiscroll MCP server provides live component schema lookup, code validation, and example search on demand — so Claude always uses the current API, never hallucinated or outdated options.
When you ask Claude Code to write Mobiscroll code, it:
- Detects your framework and Mobiscroll version via
resolveEnvironment - Loads the matching framework skill with idiomatic conventions
- Looks up the component schema before writing any props or events
- Validates generated code before returning it to you
Framework isolation
Each rules file and documentation source targets exactly one framework or domain. Never combine files from different frameworks, or mix UI framework files with Connect files.
Why this matters:
- Most API options are shared across frameworks, but component usage and templating differs for each — mixing them produces broken code
Mobiscroll Connect is a separate domain:
- Connect is a backend integration layer — OAuth 2.0, REST API, webhooks, calendar sync
- It has no UI components, no JSX, no frontend framework bindings
- Connect uses
mobiscroll-connect.mdcandllms-connect-full.txt— never the UI framework files - Mixing Connect docs with UI docs causes the AI to conflate REST endpoints with component APIs
Rules:
- Use only rules files that match one framework or domain — never mix files from different frameworks
- Register only one documentation source in Cursor
- If your project uses multiple frameworks (e.g., micro-frontends), set up separate directories with separate
.mdcfiles - If your project uses both a UI framework and Mobiscroll Connect, use separate AI context directories for each
- If an AI assistant generates code with wrong framework imports, check that the correct rules file is in place
Example queries
These examples show the kind of questions the AI integration is designed to handle correctly.
How do I use MbscEventcalendar in a script setup component?
Create a timeline view with resource grouping.
What props does the Datepicker component accept?
Troubleshooting
AI generates code with the wrong framework
Symptom: You are using Vue but the AI generates code for a different framework (e.g. import { Eventcalendar } from '@mobiscroll/react').
Fix: Verify that you have the correct rules file in place. For Vue in Cursor, use mobiscroll-vue.mdc; for Copilot, use mobiscroll-vue.instructions.md. In Cursor, check that the registered @docs source points to llms-vue-full.txt.
AI invents non-existent APIs
Symptom: The AI suggests options, events, or types that don't exist in the Mobiscroll documentation.
Fix: The .mdc rules instruct the AI to only use APIs found in the docs. If this still happens, explicitly reference @docs in Cursor queries, or verify that the Mobiscroll plugin is installed in Claude Code (/plugin list). You can also ask the AI to verify an option exists in the Mobiscroll docs.
AI mixes Mobiscroll Connect with UI components
Symptom: The AI generates REST API calls when you asked about a frontend calendar component, or generates JSX/component code when you asked about the Connect API.
Fix: Mobiscroll Connect is a backend integration layer (OAuth, REST, webhooks) and has no UI components. Eventcalendar is a frontend UI component with no REST API. They use entirely separate .mdc files and documentation sources. Verify that the correct .mdc file is active for your project. If you use both in the same codebase, keep separate AI context directories for each.
MCP server does not appear after setup
Symptom: The MCP server panel shows no mobiscroll entry, or tools are not available.
Fix: Check that the config file is in the correct location and uses the correct root key — mcpServers for Claude Code and Cursor, servers for VS Code. Validate that the file is well-formed JSON. For Claude Code, run /mcp to inspect connected servers.
File reference
All AI integration files are available at the following URLs:
Documentation files
| File | URL |
|---|---|
| Vue | https://dev.mobiscroll.com/docs/llms-vue-full.txt |
Rules files
| File | Cursor (.mdc) | Copilot (.instructions.md) |
|---|---|---|
| Vue rules | mobiscroll-vue.mdc | copilot-instructions/mobiscroll-vue.instructions.md |
Extended rule files
| File | Cursor (.mdc) | Copilot (.instructions.md) |
|---|---|---|
| Orchestrator | mobiscroll-ui.mdc | copilot-instructions/mobiscroll-ui.instructions.md |
| Vue conventions | mobiscroll-ui-vue.mdc | copilot-instructions/mobiscroll-ui-vue.instructions.md |
| Theming | mobiscroll-ui-theming.mdc | copilot-instructions/mobiscroll-ui-theming.instructions.md |
File contents
The complete contents of each file are shown below. You can copy directly from these blocks or use the download links above.
Extended rule files
View mobiscroll-ui.mdc (orchestrator)
Loading...View mobiscroll-ui-vue.mdc (Vue conventions)
Loading...View mobiscroll-ui-theming.mdc (theming)
Loading...Rules files (.mdc)
View mobiscroll-vue.mdc
Loading...