mcp-apple
Allows checking the operational status of various Apple system services and querying the iTunes Search API.
Provides tools to search for music tracks, artists, and albums on Apple Music.
Enables looking up app information and metadata directly from the Apple App Store.
Allows monitoring the operational status and availability of iCloud services.
Supports querying the iTunes Search API for music tracks and application metadata.
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., "@mcp-appleis the App Store down right now?"
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.
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:
{
"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:
{
"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:
{
"service": "iCloud"
}Related MCP server: App Store Connect MCP Server
Installation
From npm (when published)
npm install -g @striderlabs/mcp-appleFrom source
git clone <repo-url>
cd mcp-apple
npm install
npm run buildUsage
Running the server directly
node dist/index.jsOr if installed globally:
mcp-appleConfiguring with Claude Desktop
Add the following to your Claude Desktop configuration file (~/Library/Application Support/Claude/claude_desktop_config.json on macOS):
{
"mcpServers": {
"apple": {
"command": "mcp-apple"
}
}
}Or if running from the built source:
{
"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
# Install dependencies
npm install
# Build
npm run build
# Pack for distribution
npm packAPIs 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
Available Tools
3 toolscheck_app_store_infoC
Look up app information from the Apple App Store
| Name | Required | Description | Default |
|---|---|---|---|
| app_name | Yes | Name of the app to search for | |
| country | No | Country code (default: us) | us |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description carries the full burden of behavioral disclosure but only states the basic lookup action. It doesn't mention critical traits like whether this is a read-only operation, potential rate limits, authentication needs, error handling, or what the output might contain (e.g., app details, ratings). This leaves significant gaps in understanding the tool's behavior.
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 a single, clear sentence with zero wasted words, making it highly efficient and front-loaded. It directly communicates the core purpose without unnecessary elaboration.
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?
Given the lack of annotations and output schema, the description is incomplete for a tool with two parameters and no structured behavioral hints. It fails to address what information is returned, how errors are handled, or any operational constraints, leaving the agent under-informed about the tool's full context.
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 schema description coverage is 100%, with both parameters ('app_name' and 'country') well-documented in the schema itself. The description adds no additional meaning or context beyond what the schema provides, such as format examples or usage tips, so it meets the baseline for high schema coverage.
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 action ('Look up') and resource ('app information from the Apple App Store'), making the tool's purpose immediately understandable. However, it doesn't differentiate from sibling tools like 'search_music', which might also involve lookup operations, preventing a perfect score.
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 provides no guidance on when to use this tool versus alternatives like 'check_service_status' or 'search_music'. It lacks context about specific use cases, prerequisites, or exclusions, leaving the agent with minimal direction.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
check_service_statusC
Check the status of Apple services
| Name | Required | Description | Default |
|---|---|---|---|
| service | No | Specific service name to check (optional, returns all if not specified) |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries the full burden. It states what the tool does but doesn't disclose behavioral traits such as whether it's read-only, requires authentication, has rate limits, or what the output format might be. This is a significant gap for a tool with no structured safety hints.
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 a single, clear sentence with no wasted words. It's appropriately sized and front-loaded, efficiently conveying the core purpose without unnecessary elaboration.
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?
Given the lack of annotations and output schema, the description is incomplete. It doesn't explain what 'status' entails (e.g., uptime, health metrics), potential return values, or any behavioral context, making it inadequate for a tool that might involve external service checks.
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 has 100% description coverage, with the parameter 'service' documented as optional and returning all services if not specified. The description adds no additional meaning beyond this, so it meets the baseline for high schema coverage without compensating further.
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 verb ('Check') and resource ('status of Apple services'), making the purpose evident. However, it doesn't differentiate from sibling tools like 'check_app_store_info' or 'search_music', which might also involve Apple services, so it lacks sibling distinction.
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 provides no guidance on when to use this tool versus alternatives. It doesn't mention any context, prerequisites, or exclusions, leaving the agent to infer usage based on the name alone.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
search_musicC
Search for music on Apple Music/iTunes
| Name | Required | Description | Default |
|---|---|---|---|
| query | Yes | Search query for music | |
| limit | No | Number of results (default: 10) |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description carries the full burden of behavioral disclosure. It states it's a search operation, implying read-only behavior, but doesn't disclose any traits like authentication requirements, rate limits, response format, or error handling. For a tool with no annotation coverage, this is a significant gap in transparency.
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 a single, efficient sentence with zero waste. It's appropriately sized and front-loaded, directly stating the tool's purpose without unnecessary elaboration 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?
Given the lack of annotations and output schema, the description is incomplete for a search tool. It doesn't explain what the search returns (e.g., tracks, albums, artists), how results are structured, or any behavioral aspects like pagination or error cases. With 2 parameters and no structured output information, more context is needed.
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 description doesn't add any parameter-specific information beyond what's already in the schema, which has 100% coverage with clear descriptions for 'query' and 'limit'. The baseline score of 3 is appropriate since the schema does the heavy lifting, but the description doesn't compensate with additional context like query syntax examples or result ordering.
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 action ('Search for music') and target platform ('on Apple Music/iTunes'), providing a specific verb+resource combination. However, it doesn't differentiate from sibling tools like 'check_app_store_info' or 'check_service_status', which appear to be unrelated to music searching, so it doesn't fully distinguish from alternatives.
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 provides no guidance on when to use this tool versus alternatives. It doesn't mention any prerequisites, constraints, or scenarios where this tool is preferred over other search methods or sibling tools, leaving usage context entirely implicit.
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.
3 tool updates
v1.0.0- First observed
check_app_store_info - First observed
check_service_status - First observed
search_music
TDQS
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.
Maintenance
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
iTunes Search MCP — Apple's public catalog search
Search or monitor any self-hosted Cachet status page — not tied to one vendor.
Movies and TV show data — search, details, ratings, and cast from iTunes and TVmaze APIs
Live service status, active incidents, search, and outage history from Downtester.
Related MCP Servers
- AlicenseNot gradedqualityDmaintenanceEnables searching the App Store, retrieving app details, discovering trending apps, and accessing screenshots and release information via Apple's public APIs.144MIT
- AlicenseNot gradedqualityCmaintenanceEnables analysis and management of iOS/macOS apps via the App Store Connect API, including app management, reviews, sales reports, analytics, performance metrics, and TestFlight.342MIT
- AlicenseNot gradedqualityCmaintenanceEnables management of iOS/macOS apps, TestFlight builds, app metadata, analytics, and more through natural language interactions with Apple Store Connect API.6029MIT
- AlicenseNot gradedqualityCmaintenanceEnables searching the Apple iTunes catalog by keyword across music, movies, podcasts, TV shows, apps, ebooks, and more, with support for exact-ID lookup and top charts for podcasts and ebooks.4MIT
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/markswendsen-code/mcp-apple'
If you have feedback or need assistance with the MCP directory API, please join our Discord server