Skip to main content
Glama

Why?

LLMs often have outdated knowledge about mobile SDKs. mobile-docs-mcp solves this by:

  • Fetching live documentation from official sources and converting it to clean markdown

  • Querying package registries for the latest versions in real-time

  • Pulling open GitHub issues so the LLM knows about current bugs and limitations

  • Caching everything locally (24h TTL) for fast, offline-friendly responses


Related MCP server: Library Docs MCP Server

Supported SDKs

Adding a new SDK is as simple as dropping a JSON file into the sdks/ directory.


Tools

iDocumentation

Tool

Description

list_sdks

List all available SDKs with their categories and documentation pages

search_docs

Full-text search across all SDK documentation, returns relevant sections

refresh_docs

Invalidate cache and re-fetch documentation (all or specific SDK)

Package Registries

Tool

Description

search_packages

Search for packages across npm, pub.dev, CocoaPods, Maven Central, or PyPI

get_package_info

Get latest version, license, homepage, and repository for any package

GitHub

Tool

Description

get_github_issues

Fetch open issues from any GitHub repo with optional label filtering


Package Registries


Getting Started

Quick Start (npx — no install needed)

Run directly without installing:

npx @freeapptools/mobile-docs-mcp

Configure Claude Desktop

Add to your Claude Desktop config (~/Library/Application Support/Claude/claude_desktop_config.json):

{
  "mcpServers": {
    "mobile-docs-mcp": {
      "command": "npx",
      "args": ["-y", "@freeapptools/mobile-docs-mcp"],
      "env": {
        "GITHUB_TOKEN": "ghp_your_token_here"
      }
    }
  }
}

GITHUB_TOKEN is optional but recommended to avoid GitHub API rate limits (60 → 5,000 requests/hour).

Configure Claude Code

Add to your Claude Code settings:

{
  "mcpServers": {
    "mobile-docs-mcp": {
      "command": "npx",
      "args": ["-y", "@freeapptools/mobile-docs-mcp"]
    }
  }
}

Global Install (optional)

If you prefer a permanent installation:

npm install -g @freeapptools/mobile-docs-mcp

Then use mobile-docs-mcp directly as the command instead of npx.


Adding a New SDK

Create a JSON file in the sdks/ directory:

{
  "name": "YourSDK",
  "version": "latest",
  "baseUrl": "https://docs.yoursdk.com",
  "docs": [
    {
      "category": "Getting Started",
      "pages": [
        {
          "title": "Installation",
          "url": "https://docs.yoursdk.com/install"
        },
        {
          "title": "Quick Start",
          "url": "https://docs.yoursdk.com/quickstart"
        }
      ]
    }
  ]
}

That's it. The server picks it up automatically on next startup.


Configuration

docs-config.json in the project root:

{
  "cacheTtlMs": 86400000,
  "cacheDir": ".cache",
  "sdksDir": "./sdks"
}

Field

Default

Description

cacheTtlMs

86400000 (24h)

Cache time-to-live in milliseconds

cacheDir

.cache

Local cache directory path

sdksDir

./sdks

Directory containing SDK JSON files

Override the config path with the DOCS_CONFIG_PATH environment variable.


Development

# Watch mode
npm run dev

# Run tests (82 tests)
npm test

# Build
npm run build

Project Structure

mobile-docs-mcp/
├── src/
│   ├── index.ts          # Entry point — stdio transport
│   ├── config.ts         # Config loading + Zod validation
│   ├── tools.ts          # 6 MCP tool registrations
│   ├── resources.ts      # MCP resource registrations
│   ├── registry.ts       # Package registry API handlers
│   ├── github.ts         # GitHub issues API
│   ├── fetcher.ts        # HTML → Markdown conversion
│   ├── cache.ts          # File-based cache with TTL
│   ├── parser.ts         # Markdown section parser
│   ├── search.ts         # Full-text search engine
│   ├── types.ts          # TypeScript interfaces
│   └── __tests__/        # 82 unit tests
├── sdks/                 # SDK documentation configs (28 files)
├── docs-config.json      # Global configuration
├── package.json
└── tsconfig.json

License

MIT

A
license - permissive license
-
quality - not tested
-
maintenance - not tested

Resources

Unclaimed servers have limited discoverability.

Looking for Admin?

If you are the server author, to access and configure the admin panel.

Latest Blog Posts

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/zekkontro/mobile-mcp-docs'

If you have feedback or need assistance with the MCP directory API, please join our Discord server