@freeapptools/mobile-docs-mcp
v1.1.3
Published
MCP server that gives LLMs access to up-to-date mobile SDK documentation, package registry info, and GitHub issues
Maintainers
Readme
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
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-mcpConfigure 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_TOKENis 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-mcpThen 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 buildProject 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.jsonLicense
MIT
