Bifrost turns 1! Get 30% off annual plans with code
HAPPYBIRTHDAY

Docs MCP Server

Give your AI coding agent the NativePHP documentation, so it stops guessing at APIs.

Everything published in the NativePHP documentation — for both Mobile and Desktop — is available over MCP. Any agent that speaks the protocol — Claude Code, Cursor, Copilot, and friends — can search and read the docs while it works, instead of relying on whatever it happened to memorise during training.

It's hosted by us. There's nothing to install and no API key to create; just point your agent at this URL:

Copied!
https://nativephp.com/api/mcp/message

Adding it to your agent#

Claude Code#

Add it from the terminal:

Copied!
claude mcp add --transport http nativephp-docs https://nativephp.com/api/mcp/message

Or commit the config to your repo as .mcp.json so everyone on the project picks it up automatically:

Copied!
{
"mcpServers": {
"nativephp-docs": {
"type": "http",
"url": "https://nativephp.com/api/mcp/message"
}
}
}

Cursor#

Create .cursor/mcp.json in your project, or ~/.cursor/mcp.json to enable it everywhere:

Copied!
{
"mcpServers": {
"nativephp-docs": {
"type": "http",
"url": "https://nativephp.com/api/mcp/message"
}
}
}

VS Code and GitHub Copilot#

Create .vscode/mcp.json. Note that VS Code uses servers where the others use mcpServers:

Copied!
{
"servers": {
"nativephp-docs": {
"type": "http",
"url": "https://nativephp.com/api/mcp/message"
}
}
}

Agents that only speak stdio#

Some agents can't talk to a remote server directly. Bridge to it with mcp-remote:

Copied!
{
"mcpServers": {
"nativephp-docs": {
"command": "npx",
"args": [
"-y",
"mcp-remote",
"https://nativephp.com/api/mcp/message"
]
}
}
}

The server speaks the Streamable HTTP transport over a single endpoint, so /api/mcp/message is the only URL your agent needs.

What your agent can do#

Once connected, your agent gets these tools.

search_docs#

Full-text search across every platform and version. Takes a query, plus an optional platform (mobile or desktop), version, and limit (10 by default). Every result comes back with its title, section, a matching snippet, and the path you'd hand to get_page.

This is the one agents reach for most. "How do I ask for camera permission?" gets answered from the docs rather than from memory.

get_page#

Fetches a full page by its path, in platform/version/section/slug form — for example mobile/4/the-basics/device, or mobile/4/plugins/core/camera where the section is itself nested. Paths come straight out of search_docs results, so agents generally chain the two.

get_navigation#

Returns the whole sidebar for a platform and version, grouped by section and in the order you see it on the site. Useful when an agent wants to orient itself before searching, or to check whether a topic is documented at all.

list_edge_components#

Lists the EDGE / SuperNative UI components documented for a platform and optional version — the Blade components agents should use to build native UI the NativePHP way. Defaults to mobile and the latest published version for that platform when those args are omitted. Each result includes a path you can hand straight to get_page (for example mobile/4/edge-components/button). Mobile v2+ ships an edge-components section; Desktop currently has none, so the list is empty there.

search_plugins#

Search the public plugin marketplace the same way the directory does: approved, active plugins only. Takes a required query matched against package name and description, plus optional type (free or paid) and limit (10 by default, 25 max). Results include the composer name, short description, free/paid type, regular price when listed, useful flags (featured / official / works in Jump), latest version when known, and a Marketplace: URL you can open.

Use this before inventing a capability — if a camera, biometrics, or payments plugin already exists, your agent should find it here. For paid plugins, the marketplace URL is always included so a human can decide whether to buy.

get_plugin#

Fetch one marketplace plugin by composer name (vendor/package), or by vendor + package path args. Returns richer detail than search: description, type, price, repository URL when public, Packagist URL for free plugins, marketplace URL, latest version, and flags. Unapproved, inactive, or unknown packages come back as a not-found error.

Reading pages without MCP#

Every docs page is served as raw markdown by adding .md to its URL, which is often the quickest way to hand an agent one specific page:

Copied!
curl https://nativephp.com/docs/mobile/4/plugins/core/camera.md

There's also a small REST API, if you'd rather script against it than wire up an MCP client:

  • /api/mcp/search?q=camera&platform=mobile — search results as JSON
  • /api/mcp/page/{platform}/{version}/{section}/{slug} — a single page
  • /api/mcp/navigation/{platform}/{version} — the docs navigation tree
  • /api/mcp/edge-components/{platform}/{version} — EDGE / SuperNative component listing
  • /api/mcp/plugins?q=camera&type=free&limit=10 — marketplace plugin search
  • /api/mcp/plugins/{vendor}/{package} — one marketplace plugin
  • /api/mcp/health — liveness check, and the versions currently published

Both the MCP and REST endpoints are rate limited to 60 requests per minute per IP address.

Pair it with Laravel Boost#

This server tells your agent what NativePHP can do. Laravel Boost tells it about your application: your routes, models, config, and installed package versions. They complement each other, and running both gives noticeably better results than either alone.