OskarSch24/mcp-miro-http-server
3.1
If you are the rightful owner of mcp-miro-http-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 henry@mcphub.com.
The MCP Miro HTTP Server is an HTTP-based Model Context Protocol server designed for seamless integration with the Miro API, optimized for deployment on Railway.
Tools
4
Resources
0
Prompts
0
MCP Miro HTTP Server
HTTP-based Model Context Protocol (MCP) server for Miro API integration with Railway deployment support.
🚀 Features
- HTTP MCP Server - Built on official MCP SDK with Express.js
- Miro API Integration - Access boards, items, and content
- Railway Ready - Optimized for Railway.app deployment
- Health Monitoring - Built-in health check endpoint
- Environment Configurable - Easy setup with environment variables
🛠️ Available Tools
Board Management
list-boards- List all accessible Miro boardsget-board-info- Get detailed information about a specific boardget-board-items- Get all items from a specific board
Testing & Diagnostics
test-miro-connection- Test the connection to Miro API
📋 Environment Variables
MIRO_ACCESS_TOKEN=your_miro_access_token_here
PANTA_FLOWS_BOARD_ID=uXjVJVMXvuI= # Optional: specific board ID
PORT=3000
NODE_ENV=production
🚀 Deployment
Railway (Recommended)
-
Set Environment Variables:
MIRO_ACCESS_TOKEN- Your Miro API access tokenPORT- 3000 (automatically set by Railway)NODE_ENV- production
-
Health Check:
- URL:
https://your-app.up.railway.app/health - MCP Endpoint:
https://your-app.up.railway.app/mcp
- URL:
Local Development
# Install dependencies
npm install
# Set environment variables
export MIRO_ACCESS_TOKEN=your_token_here
export PANTA_FLOWS_BOARD_ID=your_board_id
export PORT=3000
# Build and start
npm run build
npm start
# Health check
curl http://localhost:3000/health
# Test MCP endpoint
curl -X POST http://localhost:3000/mcp \
-H "Content-Type: application/json" \
-d '{"jsonrpc": "2.0", "id": 1, "method": "tools/list"}'
🔧 MCP Client Configuration
Cursor
Add to your ~/.cursor/mcp.json:
{
"mcpServers": {
"miro": {
"type": "http",
"url": "https://your-app.up.railway.app/mcp",
"headers": {
"Authorization": "Bearer your_miro_token"
}
}
}
}
Claude Desktop
Add to your ~/Library/Application Support/Claude/claude_desktop_config.json:
{
"servers": {
"miro": {
"type": "http",
"url": "https://your-app.up.railway.app/mcp",
"headers": {
"Authorization": "Bearer ${input:miro_access_token}"
}
}
},
"inputs": [
{
"type": "promptString",
"id": "miro_access_token",
"description": "Miro Access Token",
"password": true
}
]
}
🔑 Getting Miro Access Token
- Go to Miro Developer Portal
- Create a new app or use existing app
- Configure permissions:
- ✅
boards:read- Read board contents - ✅
boards:write- Create and modify content - ✅
identity:read- User information
- ✅
- Generate access token
- Copy token and use as
MIRO_ACCESS_TOKEN
📊 API Endpoints
- Health Check:
GET /health - MCP Protocol:
POST /mcp - SSE Stream:
GET /mcp(with session ID) - Session Termination:
DELETE /mcp(with session ID)
🏗️ Architecture
Built on:
- Express.js - HTTP server framework
- MCP SDK - Official Model Context Protocol SDK
- TypeScript - Type safety and modern JavaScript
- Fetch API - Direct Miro API integration
📝 Example Usage
// List all boards
{
"jsonrpc": "2.0",
"id": 1,
"method": "tools/call",
"params": {
"name": "list-boards"
}
}
// Get board information
{
"jsonrpc": "2.0",
"id": 2,
"method": "tools/call",
"params": {
"name": "get-board-info",
"arguments": {
"board_id": "uXjVJVMXvuI="
}
}
}
// Test connection
{
"jsonrpc": "2.0",
"id": 3,
"method": "tools/call",
"params": {
"name": "test-miro-connection"
}
}
🐛 Troubleshooting
Server Not Starting
- Check environment variables are set
- Verify Miro access token is valid
- Check port 3000 is available
API Errors
- Verify
MIRO_ACCESS_TOKENis correct - Check token permissions in Miro Developer Portal
- Ensure board IDs are valid
Railway Deployment Issues
- Check build logs in Railway dashboard
- Verify environment variables are set in Railway
- Check health endpoint after deployment
📄 License
MIT License
🤝 Contributing
- Fork the repository
- Create feature branch (
git checkout -b feature/amazing-feature) - Commit changes (
git commit -m 'Add amazing feature') - Push to branch (
git push origin feature/amazing-feature) - Open Pull Request
Live Demo: https://mcp-miro-production.up.railway.app Health Check: https://mcp-miro-production.up.railway.app/health