philipbloch/changelog-mcp-server
If you are the rightful owner of changelog-mcp-server and would like to certify it and/or have it hosted online, please leave a comment on the right or send an email to dayong@mcphub.com.
The Shopify Changelog MCP Server is a Model Context Protocol server that provides access to Shopify Developer and Platform changelog RSS feeds, designed for integration with MCP-compatible clients.
Shopify Changelog MCP Server
A Model Context Protocol (MCP) server that provides access to both Shopify Developer and Platform changelog RSS feeds. Built with TypeScript and designed for integration with MCP-compatible clients like Cursor.
Overview
This server exposes 8 specialized tools for accessing Shopify changelog information across two sources:
- Developer Changelog (
shopify.dev/changelog) - API updates, deprecations, technical changes - Platform Changelog (
changelog.shopify.com) - Product updates, merchant features, UI changes
Features
- ✅ Dual Source Support: Access both Developer and Platform changelogs
- ✅ Configurable Sources: Enable/disable sources via environment variables
- ✅ Smart Limits: Never overwhelms with data (10-30 entries max per request)
- ✅ Category Filtering: Platform changelog supports 19+ category filters
- ✅ Recent Updates: Filter by time period (1, 3, 7, 14, or 30 days)
- ✅ Unified Search: Search across both sources simultaneously
- ✅ Source Attribution: Clear indication of which changelog each result comes from
- ✅ Full Content Retrieval: Fetch complete post content when needed
Requirements
- Node.js 18.0.0 or higher
- npm or compatible package manager
Installation
- Clone the repository:
git clone https://github.com/philipbloch/changelog-mcp-server.git
cd changelog-mcp-server
- Install dependencies:
npm install
- Build the project:
npm run build
Configuration
Cursor Integration
Add to your ~/.cursor/mcp.json:
{
"mcpServers": {
"shopify-changelog": {
"command": "node",
"args": ["/path/to/shopify-changelog-mcp/dist/index.js"],
"env": {
"developer_changelog": "true",
"platform_changelog": "true"
}
}
}
}
Environment Variables
Both sources are enabled by default. You can customize which sources are available:
{
"env": {
"developer_changelog": "true", // Set to "false" to disable
"platform_changelog": "true" // Set to "false" to disable
}
}
Configuration Examples:
Both Sources (Default)
// No env needed, both enabled by default
{
"command": "node",
"args": ["/path/to/dist/index.js"]
}
Developer Only
{
"env": {
"developer_changelog": "true",
"platform_changelog": "false"
}
}
Platform Only
{
"env": {
"developer_changelog": "false",
"platform_changelog": "true"
}
}
Available Tools
The tools available depend on which sources are enabled:
When Both Sources Enabled (Default)
Developer Tools
dev_search- Search developer changelog for API updatesdev_breaking_changes- Find breaking changes and deprecationsdev_recent- Get recent developer updates (configurable days)
Platform Tools
platform_search- Search platform changelog for product updatesplatform_category- Get updates from specific categories (POS, Admin, etc.)platform_recent- Get recent platform updates (configurable days)
Universal Tools
get_post- Get full content of any changelog postsearch_all- Search both changelogs simultaneously
When Only One Source Enabled
Tools use simplified names (no prefix) when only one source is active.
Tool Details
dev_search / platform_search
Search for specific topics or keywords in the respective changelog.
Parameters:
query(required): Search keywordslimit(optional): Max results (1-30, default: 15)
Example:
{
"name": "dev_search",
"arguments": {
"query": "GraphQL mutations",
"limit": 10
}
}
dev_recent / platform_recent
Get recent updates from the specified time period.
Parameters:
days(optional): Look back period - 1, 3, 7, 14, or 30 (default: 7)limit(optional): Max results (1-30, default: 10)
Example:
{
"name": "platform_recent",
"arguments": {
"days": 3,
"limit": 15
}
}
platform_category
Get updates from specific platform categories.
Parameters:
category(required): Category name or array of namesdays(optional): Filter by recent dayslimit(optional): Max results (1-30, default: 10)
Available Categories:
admin,analytics,apps,b2b,checkoutcollective,customers,international,inventorymarketing,mobile,online-store,orderspayments,pos,products,shipping,shop,themes
Example:
{
"name": "platform_category",
"arguments": {
"category": ["pos", "payments"],
"days": 7
}
}
dev_breaking_changes
Get breaking changes and deprecation notices from the developer changelog.
Parameters:
limit(optional): Max results (1-30, default: 15)
get_post
Retrieve the complete content of a specific changelog post.
Parameters:
url(required): Full URL of the changelog post
Example:
{
"name": "get_post",
"arguments": {
"url": "https://shopify.dev/changelog/graphql-api-update-2024"
}
}
search_all
Search across both developer and platform changelogs.
Parameters:
query(required): Search keywordssources(optional): Array of sources to search (defaults to all enabled)limit(optional): Max total results (1-30, default: 15)
Output Format
All tools return formatted results with clear source attribution in a compact single-line format:
1. 📘 [Developer] GraphQL Admin API: New bulk operations [API, GraphQL] | Dec 11 | https://shopify.dev/changelog/graphql-bulk-operations | The GraphQL Admin API now supports bulk operations for...
2. 🛍️ [Platform] POS: Offline mode improvements [POS, Mobile] | Dec 10 | https://changelog.shopify.com/posts/pos-offline-improvements | Point of Sale now offers enhanced offline capabilities...
Development
Scripts
npm run build- Compile TypeScriptnpm run start- Run the compiled servernpm run dev- Development mode with auto-reloadnpm run clean- Remove build directorynpm run rebuild- Clean and rebuildnpm run test- Test server initialization
Debug Mode
Enable debug logging:
MCP_DEBUG=true npm run start
Project Structure
shopify-changelog-mcp/
├── src/
│ ├── schemas/ # Zod validation schemas
│ │ ├── tool-schemas.ts
│ │ └── index.ts
│ ├── tools/ # Tool implementations
│ │ ├── developer-tools.ts
│ │ ├── platform-tools.ts
│ │ ├── universal-tools.ts
│ │ └── index.ts
│ ├── utils/ # Utilities
│ │ ├── rss-parser.ts
│ │ ├── formatter.ts
│ │ ├── content-fetcher.ts
│ │ └── index.ts
│ ├── index.ts # Main entry point
│ ├── server-config.ts # Server configuration
│ └── types.ts # TypeScript types
├── dist/ # Compiled output
├── package.json
├── tsconfig.json
├── nodemon.json
└── README.md
Troubleshooting
Build Errors
npm run clean
npm install
npm run build
Server Not Starting
- Check Node.js version:
node --version(must be >= 18.0.0) - Verify build succeeded:
ls -la dist/index.js - Enable debug mode:
MCP_DEBUG=true npm run start
No Results Returned
- Verify RSS feeds are accessible
- Check network connectivity
- Enable debug logging to see feed parsing details
Contributing
- Fork the repository
- Create a feature branch (
git checkout -b feature/amazing-feature) - Make your changes
- Add tests if applicable
- Commit your changes (
git commit -m 'Add amazing feature') - Push to the branch (
git push origin feature/amazing-feature) - Open a Pull Request
Author
Philip Bloch - @philipbloch
Support
- Issues: GitHub Issues
- Email: philip.bloch@shopify.com
- Slack: @philly (Shopify internal)
Version: 1.0.0
Last Updated: November 4, 2025
Status: Active