AppReviewFetch.Mcp
1.1.4
dotnet tool install --global AppReviewFetch.Mcp --version 1.1.4
dotnet new tool-manifest
dotnet tool install --local AppReviewFetch.Mcp --version 1.1.4
#tool dotnet:?package=AppReviewFetch.Mcp&version=1.1.4
nuke :add-package AppReviewFetch.Mcp --version 1.1.4
AppReviewFetch MCP Server
A Model Context Protocol (MCP) server that provides AI assistants with access to App Store Connect and Google Play review data. This enables AI tools like GitHub Copilot, Claude, and other MCP clients to analyze app reviews, monitor sentiment, and help with customer feedback management.
🤖 What is MCP?
Model Context Protocol is a standardized protocol that allows AI assistants to securely access external data sources and tools. This MCP server exposes your app review data to compatible AI clients.
🚀 Quick Start
Installation
Install as a global .NET tool:
dotnet tool install -g AppReviewFetch.Mcp
Prerequisites
- App Store Connect API Credentials - You'll need an API key from App Store Connect (instructions below)
- Configure credentials by running the CLI tool first:
# Install CLI if you haven't already
dotnet tool install -g AppReviewFetch.Cli
# Run setup
arfetch setup
Getting App Store Connect API Credentials
- Go to App Store Connect → Users and Access → Keys
- Generate an API key with App Manager, Customer Support, or Admin access
- Download the
.p8file and note your Key ID and Issuer ID - Run
arfetch setupto configure credentials interactively
📦 Configuration
VS Code with GitHub Copilot
Create or edit .vscode/mcp.json in your workspace (or user settings):
{
"inputs": [],
"servers": {
"appreviewfetch": {
"type": "stdio",
"command": "arfetch-mcp"
}
}
}
Restart VS Code or reload the MCP servers, then toggle Agent mode (@ icon) in GitHub Copilot Chat to see the AppReviewFetch tools.
Claude Desktop
Edit your Claude Desktop config file:
macOS: ~/Library/Application Support/Claude/claude_desktop_config.json
Windows: %APPDATA%\Claude\claude_desktop_config.json
{
"mcpServers": {
"appreviewfetch": {
"command": "arfetch-mcp"
}
}
}
Cline (VS Code Extension)
Add to your MCP settings:
{
"mcpServers": {
"appreviewfetch": {
"command": "arfetch-mcp"
}
}
}
🛠️ Available MCP Tools
The server exposes three powerful tools for AI assistants:
1. ListApps
Lists all apps accessible through your App Store Connect account.
Returns:
- App IDs (needed for other tools)
- App names
- Bundle IDs
- SKUs
Example AI query: "Show me all my apps"
2. FetchReviews
Fetches reviews for a specific app with advanced filtering and pagination.
Parameters:
appId(required) - App Store Connect app IDsortOrder(optional) - NewestFirst (default), OldestFirst, HighestRatingFirst, LowestRatingFirst, MostHelpfulcountry(optional) - ISO 3166-1 alpha-2 code (e.g., "US", "GB", "JP")limit(optional) - Reviews per page (1-200, default: 50)cursor(optional) - Pagination cursor from previous response
Returns:
- Review details (rating, title, body, date, reviewer)
- Developer responses
- Pagination info with next cursor
- Summary statistics (average rating, rating distribution)
Example AI queries:
- "Fetch the latest 20 reviews for app ID 123456789"
- "Show me 1-star reviews from the US"
- "Get the next page of reviews using cursor XYZ"
3. AnalyzeReviews
Performs comprehensive statistical analysis of app reviews.
Parameters:
appId(required) - App Store Connect app IDcountry(optional) - Filter by territorymaxReviews(optional) - Maximum reviews to analyze (default: 500)
Returns:
- Average rating and rating distribution
- Developer response rate
- 30-day trend analysis
- Sample reviews for each rating level
- Actionable recommendations
Example AI queries:
- "Analyze the reviews for my app and tell me the sentiment"
- "What are users saying about app 123456789 in the last month?"
- "Give me insights on review trends"
💡 Example Interactions
With GitHub Copilot (Agent Mode)
You: @appreviewfetch List all my apps
Copilot: [Uses ListApps tool]
I found 3 apps:
1. MyAwesomeApp (ID: 123456789)
2. CoolTool (ID: 987654321)
3. BestApp (ID: 555555555)
You: Show me the latest negative reviews for MyAwesomeApp
Copilot: [Uses FetchReviews with sortOrder=LowestRatingFirst]
Here are the recent 1-2 star reviews...
[Analysis of common issues]
You: Analyze all reviews and give me a summary
Copilot: [Uses AnalyzeReviews]
Based on 342 reviews:
- Average rating: 4.3/5
- 68% are 5-star reviews
- Developer response rate: 45%
- Recent trend: Rating improving (+0.3 in last 30 days)
[Detailed insights...]
With Claude
You: Can you check my App Store reviews and tell me what users are complaining about?
Claude: I'll use the AppReviewFetch MCP server to analyze your reviews.
[Uses ListApps to find your apps]
[Uses AnalyzeReviews to get insights]
[Provides detailed analysis with quotes from actual reviews]
Development & Testing
Testing with MCP Inspector
# Install MCP Inspector (Node.js required)
npm install -g @modelcontextprotocol/inspector
# Test your server
mcp-inspector dotnet run --project /path/to/AppReviewFetchMcp.csproj
Debugging
To debug the MCP server in VS Code:
- Create
.vscode/launch.json:
{
"version": "0.2.0",
"configurations": [
{
"name": ".NET Core Attach",
"type": "coreclr",
"request": "attach",
"processName": "AppReviewFetchMcp"
}
]
}
- Start debugging and let GitHub Copilot trigger the tools - breakpoints will work!
Logs
All logs are sent to stderr to keep stdout clean for MCP protocol communication. Check your MCP client's logs:
- VS Code: MCP output panel
- Claude:
~/Library/Logs/Claude/mcp*.log(macOS)
🎯 Best Practices for Pagination
The MCP server implements smart pagination strategies:
- Default page sizes are conservative (50 reviews) for quick responses
- AnalyzeReviews automatically handles pagination up to
maxReviewslimit - FetchReviews returns
nextCursorfor manual pagination control - AI assistants can iteratively fetch pages when deep analysis is needed
Tips for AI prompts:
- Start with small page sizes for quick previews
- Use filters (country, rating) to narrow results
- Let AnalyzeReviews handle auto-pagination for comprehensive stats
- Use cursors for manual multi-page exploration
🔐 Security Notes
- Credentials are read from the standard AppReviewFetch location
- Never expose credentials in MCP configuration
- MCP servers run locally and communicate via stdio by default
- For remote deployment, use environment variables for credentials
📚 Learn More
🤝 Contributing
Contributions welcome at github.com/praeclarum/AppReviewFetch
📄 License
MIT License - Copyright © 2026 praeclarum
| Product | Versions Compatible and additional computed target framework versions. |
|---|---|
| .NET | net8.0 is compatible. net8.0-android was computed. net8.0-browser was computed. net8.0-ios was computed. net8.0-maccatalyst was computed. net8.0-macos was computed. net8.0-tvos was computed. net8.0-windows was computed. net9.0 was computed. net9.0-android was computed. net9.0-browser was computed. net9.0-ios was computed. net9.0-maccatalyst was computed. net9.0-macos was computed. net9.0-tvos was computed. net9.0-windows was computed. net10.0 was computed. net10.0-android was computed. net10.0-browser was computed. net10.0-ios was computed. net10.0-maccatalyst was computed. net10.0-macos was computed. net10.0-tvos was computed. net10.0-windows was computed. |
This package has no dependencies.