Capacitor MCP Server
Provides access to official Capacitor documentation for multiple versions, enabling searching docs, retrieving doc pages, listing official and community Capacitor plugins, and finding recent Capacitor-related blog posts.
Click on "Install Server".
Wait a few minutes for the server to deploy. Once ready, it will show a "Started" state.
In the chat, type
@followed by the MCP server name and your instructions, e.g., "@Capacitor MCP ServerWhat Capacitor plugins are available for push notifications?"
That's it! The server will respond to your query, and you can continue using it as needed.
Here is a step-by-step guide with screenshots.
Capacitor MCP Server
Unofficial MCP server for the official Capacitor documentation. It gives AI assistants the current documentation for Capacitor v8, v7, v6 and next, the official and community plugin list, and the Capacitor posts from the Ionic blog — so they stop guessing plugin APIs and CLI flags. Not affiliated with or endorsed by Ionic or OutSystems.
Maintained by Capawesome.
Endpoint
The server is hosted and ready to use. No account, no token, no installation:
https://capacitor-mcp.capawesome.io/mcp
https://capacitor-mcp.capawesome.io/mcpRelated MCP server: Apple Dev MCP Server
Installation
Claude Code
claude mcp add --transport http capacitor https://capacitor-mcp.capawesome.io/mcpClaude Desktop / Claude.ai
Go to Settings → Connectors → Add custom connector and enter:
Name:
CapacitorURL:
https://capacitor-mcp.capawesome.io/mcp
Cursor
Or add .cursor/mcp.json to your project:
{
"mcpServers": {
"capacitor": {
"url": "https://capacitor-mcp.capawesome.io/mcp"
}
}
}VS Code
Or add .vscode/mcp.json to your project:
{
"servers": {
"capacitor": {
"type": "http",
"url": "https://capacitor-mcp.capawesome.io/mcp"
}
}
}Windsurf
Add the server to ~/.codeium/windsurf/mcp_config.json:
{
"mcpServers": {
"capacitor": {
"serverUrl": "https://capacitor-mcp.capawesome.io/mcp"
}
}
}Zed
Add the server to your Zed settings.json:
{
"context_servers": {
"capacitor": {
"url": "https://capacitor-mcp.capawesome.io/mcp"
}
}
}Any client via npx
Clients that cannot connect to a remote server over HTTP can run this package, which proxies stdio to the hosted server:
{
"mcpServers": {
"capacitor": {
"command": "npx",
"args": ["-y", "@capawesome/capacitor-mcp"]
}
}
}Requires Node.js 22 or later.
Tools
Tool | Purpose | Parameters |
| Search the documentation by keyword. Start here for any Capacitor question. |
|
| Read a full documentation page returned by |
|
| List official and community Capacitor plugins. |
|
| List recent Capacitor posts from the Ionic blog. | — |
Versions
The documentation is available for Capacitor v8 (default), v7, v6 and next. Pass the version parameter to search_docs and get_doc_page to target a specific version.
Rate limits
The endpoint is limited to 100 requests per minute per IP. Requests over the limit are answered with 429 Too Many Requests; retry after a short wait.
Privacy
Your IP address is processed for rate limiting only. Queries and tool arguments are not stored, not logged beyond Cloudflare's standard edge logs, and never used for training.
Related
Ionic Framework MCP Server — the same for the Ionic Framework documentation, components and usage examples.
Capawesome MCP Server — the official MCP server for the Capawesome documentation and the Capawesome Cloud management API.
Capawesome Cloud Live Updates — ship JavaScript, HTML and CSS changes to your app without an app store review.
Capawesome Cloud Native Builds — build native iOS and Android apps in the cloud, without a Mac.
Capawesome Cloud App Store Publishing — submit builds to the Apple App Store and Google Play Store.
Attribution
The documentation content is © the Ionic team, licensed under Apache-2.0 and sourced from ionic-team/capacitor-docs. It is converted from MDX to Markdown for delivery over MCP and otherwise served unmodified in substance. The community plugin list comes from capawesome-team/awesome-capacitorjs. Blog excerpts come from the Ionic blog and link to the original post.
See NOTICE for the full attribution.
Development
npm install
npm run build
npm testSet CAPACITOR_MCP_URL to point the proxy at a local server instead of the hosted one:
CAPACITOR_MCP_URL=http://localhost:8787/mcp node dist/index.jsLicense
See LICENSE.
Available Tools
4 toolsget_doc_pageRead a documentation pageARead-only
Read the full markdown of a single page of the official Capacitor documentation. Use this after search_docs to read a page end to end before writing code against a plugin API, a CLI command or a native configuration, because search snippets are deliberately short and regularly omit required setup steps. Returns the page title, its URL, the documentation version and the complete page markdown including code samples. Do not use this to find a page: it needs an exact URL or path, so run search_docs first. Do not use it for pages outside capacitorjs.com — Capawesome plugins and Capawesome Cloud are covered by the Capawesome MCP server at https://mcp.capawesome.io/mcp, Ionic Framework UI components by the Ionic Framework MCP server at https://ionic-framework-mcp.capawesome.io/mcp.
| Name | Required | Description | Default |
|---|---|---|---|
| url | Yes | The page URL or site-relative path, e.g. "https://capacitorjs.com/docs/apis/camera", "apis/camera" or "ios/configuration". An anchor is ignored; the whole page is returned. | |
| version | No | Optional. Capacitor docs version. Defaults to v8. Match the major version of @capacitor/core in the user's package.json. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already provide readOnlyHint, openWorldHint, and destructiveHint. The description adds behavioral detail on output (page title, URL, version, complete markdown including code samples) and notes that anchors are ignored, which goes beyond the annotation. No contradictions exist.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is moderately long but each sentence serves a purpose: defining the action, providing usage guidance, describing output, and stating restrictions. It avoids redundancy, though it could be slightly tightened without losing clarity.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
The description gives complete context: when to use (after search_docs), what it returns (full markdown with code samples), and what not to use it for (finding pages, external domains) with explicit pointers to alternative tools for other domains. No critical information is missing.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100% for both parameters, with examples for url and a clear enum with default and matching guidance for version. The tool description itself adds no further parameter-level meaning beyond what is already in the schema, so a baseline of 3 is appropriate.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool reads a full documentation page, with a specific verb ('read') and resource ('single page of the official Capacitor documentation'). It explicitly distinguishes itself from sibling tools like 'search_docs' (which finds pages) and the list_* tools (which list content).
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description explicitly instructs using this tool after 'search_docs' and provides clear exclusions: 'Do not use this to find a page' and 'Do not use it for pages outside capacitorjs.com', with alternative tools for other domains. This leaves no ambiguity about when to choose this tool over siblings.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
list_blog_postsList recent blog postsARead-only
List the 10 most recent posts from the Capacitor tag of the official Ionic blog, newest first. Use this when the question is about what is new — recent releases, announcements or deprecations. The blog covers both Capacitor and Ionic Framework. Returns title, date, tags, url and excerpt per post. Do not use this to answer a documentation question: the feed only carries the newest posts, so search the documentation with search_docs instead.
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
The annotations already declare readOnlyHint=true and destructiveHint=false, so the safety profile is covered. The description adds meaningful behavioral context: the feed only contains the newest posts, the blog covers both Capacitor and Ionic Framework, and each returned post includes specific fields. This goes beyond bare annotation coverage without contradicting it.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is concise yet information-dense. Each sentence serves a purpose: defining scope, giving usage guidance, describing output fields, and providing a clear exclusion with an alternative. Key facts are front-loaded.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a simple zero-parameter read-only tool, the description is complete: it specifies source, ordering, recency limit, return fields, applicable use cases, and the correct sibling tool for documentation questions. No important context is missing.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The tool has zero parameters, so the schema carries no parameter documentation burden. The baseline for 0-parameter tools is 4, and the description appropriately focuses on output and usage rather than parameter details that do not exist.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool's function: listing the 10 most recent posts from the Capacitor tag of the Ionic blog, newest first. It names a specific resource and scope, and the presence of sibling tools like search_docs and get_doc_page makes the boundary between them easy to infer.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description explicitly states when to use this tool ('when the question is about what is new — recent releases, announcements or deprecations') and when not to use it ('Do not use this to answer a documentation question'). It also names the alternative, search_docs, making the routing decision unambiguous.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
list_pluginsList Capacitor pluginsARead-only
List Capacitor plugins: the official plugins maintained by the Capacitor team and community plugins from the awesome-capacitorjs list maintained by Capawesome. Use this to find a plugin for a native capability before writing custom native code, and to learn which package name and maintainer a capability belongs to. Returns name, description, source, maintainer and url per plugin, plus core: true for a plugin that ships with @capacitor/core and experimental: true for an experimental one. Results are ranked by relevance, with official Capacitor plugins ranked first, then plugins maintained by Capawesome, then other community plugins. Do not use this to read a plugin's API: call get_doc_page with the url of an official plugin, and use the Capawesome MCP server at https://mcp.capawesome.io/mcp for Capawesome plugins.
| Name | Required | Description | Default |
|---|---|---|---|
| limit | No | The maximum number of items to return, e.g. 5. Defaults to 25, maximum 100. | |
| query | No | A free-text filter matching the package name or the description, e.g. "camera". Defaults to no filter. Optional. | |
| source | No | Which plugins to list: "official" for the plugins maintained by the Capacitor team, "community" for the awesome-capacitorjs entries, or "all" for both. Defaults to "all". |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Beyond the readOnlyHint and openWorldHint annotations, the description discloses meaningful behavioral details: the exact output fields, the `core` and `experimental` flags, and the specific ranking order (official, then Capawesome, then community). It also describes how sources map to plugin ecosystems. No contradiction with annotations.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is compact yet complete: it front-loads the core purpose, then use case, output shape, ranking behavior, and exclusions. Every sentence adds distinct information; there is no filler or redundancy.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
With no output schema, the description fully specifies return fields and flags. It also covers ranking, parameter context, and routing to alternatives. The tool is simple enough that nothing essential is missing for correct invocation and interpretation.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so the baseline is 3. Each parameter is already thoroughly documented with defaults, enums, and filter behavior. The description adds some contextual color (e.g., 'official' means Capacitor team, 'community' means awesome-capacitorjs entries) but does not need to compensate for schema gaps.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description states both a specific verb and resource: 'List Capacitor plugins', and distinguishes the two categories of plugins (official and community). It also clarifies the tool's purpose—finding a plugin before writing custom native code—and contrasts itself with get_doc_page for reading APIs, making sibling differentiation explicit.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description gives explicit when-to-use guidance ('Use this to find a plugin for a native capability before writing custom native code') and explicit when-not-to-use guidance with alternatives ('Do not use this to read a plugin's API: call get_doc_page ... use the Capawesome MCP server'). No ambiguity remains.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
search_docsSearch Capacitor documentationARead-only
Search the official Capacitor documentation from capacitorjs.com by keyword. Use this first for any question about Capacitor itself — the CLI, the capacitor.config file, the native Android and iOS projects, the official plugin APIs, or upgrading to a newer major version — because guessing an API, a configuration option or a CLI flag produces broken code. Returns the best matching page sections with title, url, snippet, section and version, plus the parentTitle and parentUrl of the page a section belongs to. The same results are attached as structured content. Do not use this to read a whole page (call get_doc_page with a url from these results), to look up Capawesome plugins such as @capawesome/capacitor-file-picker or Capawesome Cloud services such as Live Updates, Native Builds and App Store Publishing (use the Capawesome MCP server at https://mcp.capawesome.io/mcp instead), or to look up Ionic Framework UI components (use the Ionic Framework MCP server at https://ionic-framework-mcp.capawesome.io/mcp instead).
| Name | Required | Description | Default |
|---|---|---|---|
| limit | No | The maximum number of items to return, e.g. 5. Defaults to 10, maximum 25. | |
| query | Yes | The search terms, e.g. "camera permissions android" or "live reload". Plain keywords work best; no search operators are supported. | |
| section | No | Restrict the search to one part of the documentation, e.g. "apis" for the official plugin references or "ios" for the native iOS guides. Defaults to searching every section. | |
| version | No | Optional. Capacitor docs version. Defaults to v8. Match the major version of @capacitor/core in the user's package.json. |
Output Schema
| Name | Required | Description |
|---|---|---|
| results | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
The annotations already declare readOnlyHint=true, destructiveHint=false, and openWorldHint=true. The description adds context about the return format (best matching page sections with fields) and that results are attached as structured content, providing a bit more transparency beyond the annotations without contradicting them.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is relatively long but packed with essential usage guidance, including when to use and when not to use the tool. It front-loads the main purpose and then provides exclusions and alternatives. It is not wasteful; every sentence adds value, though it could be slightly more streamlined.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
The description covers the tool's purpose, scope, and exclusions thoroughly. Since an output schema exists (as noted in context signals), the description does not need to detail return values beyond mentioning the types of fields. It provides enough context for an agent to decide when and how to invoke the tool.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The input schema provides 100% coverage of all four parameters with descriptions, including enums for section and version, and a description for query noting that plain keywords work best. The tool description itself does not add additional parameter semantics beyond what the schema already states, so a baseline score of 3 is appropriate.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states it searches official Capacitor documentation by keyword and returns matching page sections. It distinguishes itself from siblings by explicitly naming get_doc_page, list_plugins, and list_blog_posts as alternatives, making the tool's unique purpose unambiguous.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
It explicitly instructs to use this tool first for any Capacitor-related question and lists specific topics (CLI, config, native projects, plugin APIs, upgrading). It also provides clear 'do not use' guidance, directing users to get_doc_page for whole pages and to other MCP servers for Capawesome and Ionic Framework content.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
Tool Schema Changelog
Recent tool additions, removals, and schema changes observed during successful MCP inspections. Dates show when Glama detected each change.
4 tool updates
v0.0.1- First observed
get_doc_page - First observed
list_blog_posts - First observed
list_plugins - First observed
search_docs
TDQS
Each tool targets a distinct job: blog feed vs. doc search vs. full-page retrieval vs. plugin discovery. The descriptions explicitly warn against using the wrong tool, so an agent should not confuse them.
All four tools follow a consistent snake_case verb_noun convention: list_blog_posts, search_docs, get_doc_page, list_plugins. The verb choices clearly signal the action each tool performs.
Four tools is well-scoped for a documentation-focused server: search, page retrieval, news, and plugin discovery each earn their place. It is neither bloated nor too thin.
The core documentation workflow is covered end to end: search, read a full page, list plugins, and check recent blog posts. Minor gaps exist—such as no way to fetch a full blog post or filter plugins—but they are workaroundable and the scope is clearly bounded.
Resources
Unclaimed servers have limited discoverability.
Looking for Admin?
If you are the server author, to access and configure the admin panel.
Related MCP Connectors
Provide your AI coding tools with token-efficient access to up-to-date technical documentation for…
Versioned documentation registry and semantic search for AI tools and coding assistants.
Direct access to Cypress tests results and accessibility reports in your AI workflow.
Give AI assistants access to real-time data. Search the web, compare flights, find hotels, and more.
Related MCP Servers
FlicenseNot gradedqualityFmaintenanceAllows AI tools like Cursor, VS Code, Claude, ChatGPT, and Windsurf to access the latest Astro documentation in a structured way, enabling accurate answers about Astro's features, APIs, and best practices.67-- AlicenseBqualityFmaintenanceProvides AI assistants with access to Apple's Human Interface Guidelines and technical API documentation across all Apple platforms (iOS, macOS, watchOS, tvOS, visionOS), enabling unified search of design principles and implementation details.37221MIT
- FlicenseAqualityDmaintenanceProvides AI models with direct access to documentation for over 600 technologies from DevDocs.io, including popular languages, frameworks, and tools. It enables comprehensive searching, content retrieval, and offline access via an intelligent local caching system.122-
- FlicenseNot gradedqualityDmaintenanceEnables AI assistants to fetch, index, and perform semantic RAG-based searches on API documentation from various sources. It provides tools for hybrid search and collection management, allowing users to access up-to-date documentation from projects like Gemini and FastMCP.-
Latest Blog Posts
- Who's Calling? MCP Hosts Are an Identity Blind Spot (And the Spec Knows It)By Om-Shree-0709 on .mcpAgent IdentityOAuth 2.1
- Your AI Chatbot Just Exposed Your CEO's Salary to an InternBy Om-Shree-0709 on .Agent IdentityMCP SecurityOAuth Delegation
- Why MCP Servers Need Execution Sandboxing (And Why Your Current Stack Isn't Enough)By Om-Shree-0709 on .Agentic AiPrompt InjectionWebAssembly
MCP directory API
We provide all the information about MCP servers via our MCP API.
curl -X GET 'https://glama.ai/api/mcp/v1/servers/capawesome-team/capacitor-mcp'
If you have feedback or need assistance with the MCP directory API, please join our Discord server