Team Sync MCP Server
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., "@Team Sync MCP ServerPublish that the backend added a new endpoint for user lookup."
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.
Team Sync MCP Server
A self-hosted synchronization hub for frontend and backend teams using Cursor. It exposes MCP tools for publishing and reading project state, stores everything locally, and serves a small React dashboard for visual inspection.
What It Provides
A Python MCP server using the official
mcpSDK and Streamable HTTP transport athttp://localhost:8080/mcp.Shared project state for API contracts, requirements, component specs, and changelog entries.
SQLite persistence by default, with an optional JSON-file backend.
REST endpoints for dashboard access at
/api/state,/api/changelog, and/api/events.A React, Tailwind CSS, and shadcn-style dashboard served at
http://localhost:8080/dashboard/.Optional shared bearer token for MCP calls and write endpoints.
Related MCP server: MCP IDE Bridge
Quick Start With Docker
docker compose up --buildOpen the dashboard:
http://localhost:8080/dashboard/The SQLite database is stored in ./data through the compose volume.
Local Development
Install and run the Python server:
python -m venv .venv
source .venv/bin/activate
pip install -e ".[dev]"
python -m sync_mcpRun the dashboard in Vite dev mode:
cd dashboard
npm install
npm run devThe Vite dev server proxies /api to http://localhost:8080.
For a production-like local run:
cd dashboard
npm install
npm run build
cd ..
python -m sync_mcpConfiguration
Copy .env.example to .env or set environment variables directly.
Variable | Default | Description |
|
| Project name displayed in Cursor and the dashboard. |
|
| Use |
|
| Directory for persistent state. |
|
| Server bind host. |
|
| Server port. |
| empty | Optional shared bearer token for MCP and write access. |
Cursor MCP Configuration
Add the server in Cursor MCP settings. For an open local server:
{
"mcpServers": {
"team-sync": {
"url": "http://localhost:8080/mcp"
}
}
}If SYNC_MCP_TOKEN is set:
{
"mcpServers": {
"team-sync": {
"url": "http://localhost:8080/mcp",
"headers": {
"Authorization": "Bearer shared-secret"
}
}
}
}MCP Tools
publish_update(team, type, description, details)
Records a change and updates the aggregated state.
Example after a backend endpoint change:
{
"team": "backend",
"type": "api_added",
"description": "Add user lookup endpoint",
"details": {
"method": "GET",
"path": "/users/:id",
"response": {
"id": "string",
"name": "string"
}
}
}Useful type values:
api_added,api_changed,api_removedrequirement_added,requirement_changed,requirement_closedcomponent_specchangelogother
get_latest_state()
Returns the current API endpoints, open requirements, component specs, recent changes, and a Cursor-friendly markdown digest.
get_changelog(since, team, type, limit)
Returns recent changes. since accepts either an ISO timestamp or a version number.
subscribe_to_changes()
Returns subscription hints. MCP clients that support resource update notifications can subscribe to:
sync://statesync://changelog
The dashboard uses Server-Sent Events at /api/events.
Dashboard API
curl http://localhost:8080/api/health
curl http://localhost:8080/api/state
curl "http://localhost:8080/api/changelog?team=backend&type=api_added"Publish through the REST fallback:
curl -X POST http://localhost:8080/api/updates \
-H "Content-Type: application/json" \
-d '{
"team": "frontend",
"type": "requirement_added",
"description": "User payload needs avatar_url",
"details": { "id": "user-avatar", "title": "Expose avatar_url" }
}'With token auth:
curl -X POST http://localhost:8080/api/updates \
-H "Authorization: Bearer shared-secret" \
-H "Content-Type: application/json" \
-d '{"team":"backend","type":"changelog","description":"Deployed staging build"}'Team Workflow
Backend publishes
api_addedorapi_changedfrom Cursor after changing an endpoint.Frontend starts a session and calls
get_latest_state()or thesync_digestprompt.Frontend publishes
requirement_addedwhen they need contract changes.Backend sees the requirement in Cursor or at
http://localhost:8080/dashboard/.
Tests
pip install -e ".[dev]"
pytestThe tests cover state aggregation, changelog filtering, and token enforcement on write endpoints.
This server cannot be installed
Maintenance
Resources
Unclaimed servers have limited discoverability.
Looking for Admin?
If you are the server author, to access and configure the admin panel.
Latest Blog Posts
- 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/babakshofficial/mcp-server'
If you have feedback or need assistance with the MCP directory API, please join our Discord server