LaunchNotes MCP Server
Enables management of LaunchNotes projects and announcements through natural language, including customization of themes, colors, content, and publishing announcements with full read/write access via the LaunchNotes GraphQL API.
README
LaunchNotes MCP Server
An MCP (Model Context Protocol) server for managing LaunchNotes projects and announcements through the GraphQL API. Uses stdio transport for Claude Desktop and other MCP clients.
Features
Project Management (6 tools)
- Get complete project details
- List all accessible projects
- Update custom CSS, HTML, headers, and footers
- Update project color palette and theme
- Update project content (title, description, slug)
- Toggle project features (feedback, roadmap, ideas, RSS, voting)
Announcement Management (7 tools)
- List and filter announcements
- Get announcement details
- Create new announcements
- Update existing announcements
- Publish announcements immediately
- Schedule announcements for future publication
- Archive announcements
Installation
From npm (Recommended)
npm install -g @launchnotes/mcp
From Source
git clone https://github.com/launchnotes/mcp.git
cd mcp
npm install
npm run build
Quick Start
1. Get Your API Token
Get your LaunchNotes API token from Settings → API in your LaunchNotes dashboard. Use a Management token for full access or a Public token for read-only operations.
2. Add to Claude Desktop
Add to your Claude Desktop config file (~/Library/Application Support/Claude/claude_desktop_config.json on macOS):
{
"mcpServers": {
"launchnotes": {
"command": "npx",
"args": ["-y", "@launchnotes/mcp"],
"env": {
"LAUNCHNOTES_API_TOKEN": "your-token-here"
}
}
}
}
Then restart Claude Desktop.
3. Add to Claude Code
claude mcp add --transport stdio launchnotes \
--env LAUNCHNOTES_API_TOKEN='your-token-here' \
-- npx -y @launchnotes/mcp
4. Start Using
In Claude, simply ask:
List my LaunchNotes projects
Create a new announcement about our API update
Getting your API token:
- Log into LaunchNotes
- Navigate to Settings → API
- Generate a Management token (read/write access) or Public token (read-only)
Available Tools
1. launchnotes_get_project
Get complete details for a LaunchNotes project including all customization settings.
Parameters:
project_id(string, required): The project IDresponse_format('json' | 'markdown', optional): Output format (default: 'markdown')
Example:
{
"project_id": "proj_123",
"response_format": "markdown"
}
Use cases:
- "Show me my project's current custom CSS"
- "What are the color values for my project?"
- "Get all settings for project proj_123"
2. launchnotes_list_projects
List all LaunchNotes projects accessible with your API token.
Parameters:
response_format('json' | 'markdown', optional): Output format (default: 'markdown')
Example:
{
"response_format": "json"
}
Use cases:
- "Show me all my LaunchNotes projects"
- "List my organization's projects"
- "What projects do I have access to?"
3. launchnotes_update_project_custom_code
Update custom CSS, HTML head, header, footer, or index hero for a project.
Parameters:
project_id(string, required): The project IDcustom_css(string, optional): Custom CSS codecustom_head(string, optional): Custom HTML for<head>sectioncustom_header(string, optional): Custom HTML for page headercustom_footer(string, optional): Custom HTML for page footercustom_index_hero(string, optional): Custom HTML for index hero section
Note: At least one custom code field must be provided.
Example:
{
"project_id": "proj_123",
"custom_css": ".sidebar { display: none; }",
"custom_head": "<meta name=\"description\" content=\"Product updates\">"
}
Use cases:
- "Add custom CSS to hide the sidebar"
- "Update the custom header HTML"
- "Set custom analytics code in the head"
4. launchnotes_update_project_colors
Update the color palette and theme for a project. All colors must be in hex format.
Parameters:
project_id(string, required): The project IDprimary_color(string, optional): Primary brand color (hex)secondary_color(string, optional): Secondary brand color (hex)primary_text_color(string, optional): Primary text color (hex)secondary_text_color(string, optional): Secondary text color (hex)gray_color(string, optional): Gray accent color (hex)light_gray_color(string, optional): Light gray color (hex)off_white_color(string, optional): Off-white color (hex)white_color(string, optional): White color (hex)supporting_palette(string, optional): Supporting palette configcolor_theme(string, optional): Overall color theme identifier
Note: At least one color field must be provided. All colors must be in hex format (e.g., #FF5733).
Example:
{
"project_id": "proj_123",
"primary_color": "#FF5733",
"secondary_color": "#3498DB",
"primary_text_color": "#2C3E50"
}
Use cases:
- "Change the primary color to #FF5733"
- "Update all brand colors for my project"
- "Set text colors to improve readability"
5. launchnotes_update_project_content
Update project title, description, headings, and slug.
Parameters:
project_id(string, required): The project IDname(string, optional): Internal project nametitle(string, optional): Public-facing project titledescription(string, optional): Project descriptionheading(string, optional): Main heading on the project pagesubheading(string, optional): Subheading below the main headingslug(string, optional): URL-friendly identifier (lowercase, hyphens only)
Note: At least one content field must be provided.
Example:
{
"project_id": "proj_123",
"title": "Product Updates",
"heading": "What's New",
"slug": "updates"
}
Use cases:
- "Update project title to 'Product Updates'"
- "Change the heading and subheading"
- "Update the project slug"
6. launchnotes_update_project_features
Enable or disable features for a project.
Parameters:
project_id(string, required): The project IDfeedback_enabled(boolean, optional): Enable/disable feedback collectionroadmap_enabled(boolean, optional): Enable/disable roadmap featureideas_enabled(boolean, optional): Enable/disable ideas/feature requestsrss_feed_enabled(boolean, optional): Enable/disable RSS feedvoting_enabled(boolean, optional): Enable/disable voting on ideasnoindex(boolean, optional): Prevent search engine indexing (true = disabled SEO)
Note: At least one feature toggle must be provided.
Example:
{
"project_id": "proj_123",
"feedback_enabled": true,
"roadmap_enabled": true,
"voting_enabled": true
}
Use cases:
- "Enable feedback collection for my project"
- "Turn on the roadmap feature"
- "Disable RSS feed"
Complete Usage Example
Here's a complete workflow for customizing a LaunchNotes project:
# 1. List all your projects
# Response: Shows all projects with IDs
# 2. Get details for a specific project
{
"project_id": "proj_abc123",
"response_format": "markdown"
}
# 3. Update the color scheme
{
"project_id": "proj_abc123",
"primary_color": "#FF5733",
"secondary_color": "#3498DB"
}
# 4. Add custom CSS to hide elements
{
"project_id": "proj_abc123",
"custom_css": ".sidebar { display: none; } .header { background: #FF5733; }"
}
# 5. Update content
{
"project_id": "proj_abc123",
"title": "Product Updates",
"heading": "Stay Updated",
"subheading": "All the latest features and improvements"
}
# 6. Enable features
{
"project_id": "proj_abc123",
"feedback_enabled": true,
"roadmap_enabled": true
}
API Rate Limits
LaunchNotes enforces a rate limit of 300 operations per 5 minutes. The server will return an error if this limit is exceeded.
Error Handling
The server provides detailed error messages for common issues:
- Authentication failed: Check your API token
- Project not found: Verify the project ID exists
- Rate limit exceeded: Wait before making more requests
- Validation error: Check that all required fields are provided and formatted correctly
Development
Running in Development Mode
npm run dev
This will watch for TypeScript changes and rebuild automatically.
Project Structure
@launchnotes/mcp/
├── src/
│ ├── index.ts # Server initialization
│ ├── shared/
│ │ ├── client.ts # GraphQL client
│ │ ├── constants.ts # API configuration
│ │ └── types.ts # Shared TypeScript interfaces
│ ├── projects/
│ │ ├── types.ts # Project types
│ │ ├── queries.ts # Project GraphQL queries
│ │ ├── schemas.ts # Project Zod schemas
│ │ ├── formatters.ts # Project response formatters
│ │ └── tools.ts # Project tool implementations
│ └── announcements/
│ ├── types.ts # Announcement types
│ ├── queries.ts # Announcement GraphQL queries
│ ├── schemas.ts # Announcement Zod schemas
│ ├── formatters.ts # Announcement response formatters
│ └── tools.ts # Announcement tool implementations
├── dist/ # Compiled JavaScript
├── package.json
├── tsconfig.json
└── README.md
Connecting to Claude Desktop
To use this MCP server with Claude Desktop:
-
Configure Claude Desktop:
Edit your Claude Desktop configuration file:
- macOS:
~/Library/Application Support/Claude/claude_desktop_config.json - Windows:
%APPDATA%\Claude\claude_desktop_config.json
Add the server configuration:
{ "mcpServers": { "launchnotes": { "command": "npx", "args": ["-y", "@launchnotes/mcp"], "env": { "LAUNCHNOTES_API_TOKEN": "your-token-here" } } } }Or if running from source:
{ "mcpServers": { "launchnotes": { "command": "node", "args": ["/path/to/mcp/dist/index.js"], "env": { "LAUNCHNOTES_API_TOKEN": "your-token-here" } } } } - macOS:
-
Restart Claude Desktop
-
Verify the connection: Ask Claude: "List my LaunchNotes projects"
Troubleshooting
Server won't start
- Ensure Node.js 18+ is installed:
node --version - Verify your API token is set correctly
- Check that the server is built:
npm run build
Authentication errors
- Confirm your API token is valid
- Check that you're using a Management token (not Public) for write operations
- Verify the token hasn't expired
Can't find my project
- Use
launchnotes_list_projectsto see all accessible projects - Verify you have permission to access the project
- Check that you're using the correct project ID (not the slug)
Contributing
This is a custom MCP server. To add new tools or features:
- Add new tool schemas in
src/schemas/ - Implement tool logic in
src/tools/ - Register tools in the appropriate file
- Update this README with documentation
License
MIT
Support
For LaunchNotes API questions, visit: https://help.launchnotes.com/
For MCP protocol questions, visit: https://modelcontextprotocol.io/
推荐服务器
Baidu Map
百度地图核心API现已全面兼容MCP协议,是国内首家兼容MCP协议的地图服务商。
Playwright MCP Server
一个模型上下文协议服务器,它使大型语言模型能够通过结构化的可访问性快照与网页进行交互,而无需视觉模型或屏幕截图。
Magic Component Platform (MCP)
一个由人工智能驱动的工具,可以从自然语言描述生成现代化的用户界面组件,并与流行的集成开发环境(IDE)集成,从而简化用户界面开发流程。
Audiense Insights MCP Server
通过模型上下文协议启用与 Audiense Insights 账户的交互,从而促进营销洞察和受众数据的提取和分析,包括人口统计信息、行为和影响者互动。
VeyraX
一个单一的 MCP 工具,连接你所有喜爱的工具:Gmail、日历以及其他 40 多个工具。
graphlit-mcp-server
模型上下文协议 (MCP) 服务器实现了 MCP 客户端与 Graphlit 服务之间的集成。 除了网络爬取之外,还可以将任何内容(从 Slack 到 Gmail 再到播客订阅源)导入到 Graphlit 项目中,然后从 MCP 客户端检索相关内容。
Kagi MCP Server
一个 MCP 服务器,集成了 Kagi 搜索功能和 Claude AI,使 Claude 能够在回答需要最新信息的问题时执行实时网络搜索。
e2b-mcp-server
使用 MCP 通过 e2b 运行代码。
Neon MCP Server
用于与 Neon 管理 API 和数据库交互的 MCP 服务器
Exa MCP Server
模型上下文协议(MCP)服务器允许像 Claude 这样的 AI 助手使用 Exa AI 搜索 API 进行网络搜索。这种设置允许 AI 模型以安全和受控的方式获取实时的网络信息。