mcp-apple
# mcp-apple
An MCP (Model Context Protocol) connector for Apple services. This server exposes tools for querying the iTunes Search API and checking Apple system service status.
## Tools
### `check_app_store_info`
Look up app information from the Apple App Store using the iTunes Search API.
**Parameters:**
- `app_name` (string, required): Name of the app to search for.
- `country` (string, optional, default: `"us"`): Two-letter country code (e.g., `"us"`, `"gb"`, `"jp"`).
**Example:**
```json
{
"app_name": "Xcode",
"country": "us"
}
```
### `search_music`
Search for music tracks on Apple Music / iTunes using the iTunes Search API.
**Parameters:**
- `query` (string, required): Search query (artist, track name, album, etc.).
- `limit` (number, optional, default: `10`): Number of results to return (max 200).
**Example:**
```json
{
"query": "Taylor Swift Shake It Off",
"limit": 5
}
```
### `check_service_status`
Check the operational status of Apple services (iCloud, App Store, Apple Music, etc.) using Apple's official System Status page.
**Parameters:**
- `service` (string, optional): Filter by a specific service name (case-insensitive substring match). If omitted, returns the status of all Apple services.
**Example:**
```json
{
"service": "iCloud"
}
```
## Installation
### From npm (when published)
```bash
npm install -g @striderlabs/mcp-apple
```
### From source
```bash
git clone <repo-url>
cd mcp-apple
npm install
npm run build
```
## Usage
### Running the server directly
```bash
node dist/index.js
```
Or if installed globally:
```bash
mcp-apple
```
### Configuring with Claude Desktop
Add the following to your Claude Desktop configuration file (`~/Library/Application Support/Claude/claude_desktop_config.json` on macOS):
```json
{
"mcpServers": {
"apple": {
"command": "mcp-apple"
}
}
}
```
Or if running from the built source:
```json
{
"mcpServers": {
"apple": {
"command": "node",
"args": ["/path/to/mcp-apple/dist/index.js"]
}
}
}
```
### Configuring with other MCP clients
The server communicates over stdio using the MCP protocol. Point your MCP client to the `dist/index.js` file or the `mcp-apple` binary.
## Development
```bash
# Install dependencies
npm install
# Build
npm run build
# Pack for distribution
npm pack
```
## APIs Used
- **iTunes Search API**: `https://itunes.apple.com/search` — Public Apple API, no authentication required.
- **Apple System Status**: `https://www.apple.com/support/systemstatus/data/system_status_en_US.js` — Public Apple status endpoint, no authentication required.
## License
MIT
TDQS
Scored across 3 tools
Each tool has a clearly distinct purpose: checking app store info, checking service status, and searching music. There is no overlap in functionality, making it easy for an agent to select the correct tool without confusion.
The tools follow a consistent verb_noun pattern (check_app_store_info, check_service_status, search_music), with minor deviation in 'search_music' using 'search' instead of 'check'. This maintains readability and predictability across the set.
With only 3 tools, the server feels thin for a domain like Apple services, which could include more operations such as checking device status, managing subscriptions, or accessing other media. However, it covers basic functions without being overly complex.
The tools cover distinct areas (App Store, service status, music search), but there are notable gaps for a comprehensive Apple services interface, such as no update, delete, or creation operations, and missing coverage for other Apple domains like iCloud or device management.