MCP DevOps Plan Server
Click on "Deploy 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., "@MCP DevOps Plan Server show me all work items in the 'Mobile App' project"
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.
MCP DevOps Plan Server
A Model Context Protocol (MCP) server implementation for DevOps Plan, enabling work item management through standardized MCP clients.
Features
Retrieve applications and projects from Plan
Get available components and work item types
Create, retrieve, and delete work items
Filter work items by type and owner
Related MCP server: Azure MCP FastMCP Server
Warranties
This MCP server is provided "as is" without any warranties. It is designed to work with the DevOps Plan system and may require specific configurations to function correctly. Users are responsible for ensuring compatibility with their Plan instance. This server provides data destructive functionality, the author is not liable for any data loss due to use of this MCP capability.
Example Use Cases
1. Setting Up a New Project Sprint
Scenario: You're a project manager starting a new sprint and need to create multiple work items for your team.
Steps:
"Get me all available applications in Plan"
"Show me the projects in the 'WebApp Development' application"
"What work item types are available in the 'Customer Portal' project?"
"Create a new Epic titled 'User Authentication System' in the Customer Portal project"
"Create three tasks: 'Design login UI', 'Implement OAuth integration', and 'Add password reset functionality'"
Benefits: Quickly set up organized work items for sprint planning and team assignment.
2. Sprint Review and Cleanup
Scenario: At the end of a sprint, you need to review completed work and clean up obsolete items.
Steps:
"Show me all work items in the 'Mobile App' project"
"Filter work items by type 'Bug' to see what issues were resolved"
"Show me work items assigned to 'john.doe' to review his contributions"
"Delete the work item with ID '12345' as it's no longer relevant"
"Create a summary report of completed vs remaining work items"
Benefits: Maintain clean project state and generate insights for retrospectives.
3. Cross-Team Dependency Management
Scenario: You're coordinating between frontend and backend teams and need to track dependencies.
Steps:
"Get all work items in the 'E-commerce Platform' project"
"Filter by work item type 'Story' to see feature requirements"
"Create a new task 'API endpoint for user profiles' in the 'Backend Services' component"
"Create a dependent task 'Integrate user profile API' in the 'Frontend' component"
"Check work items assigned to backend team members to see their current workload"
Benefits: Coordinate cross-functional work and ensure proper dependency tracking.
Configuration
The server requires configuration for authentication and connection to your Plan instance. You can provide configuration in several ways:
Quick Setup (Recommended)
Run the interactive setup script:
npm run setupThis will prompt you for your configuration values and create a .env file automatically.
Option 1: Environment Variables
Set the following environment variables:
export PLAN_ACCESS_TOKEN="your_base64_encoded_token_here"
export PLAN_SERVER_URL="https://your-plan-server.com/plan"
export PLAN_TEAMSPACE_ID="your-teamspace-id-here"Option 2: Command Line Arguments
Pass configuration as command line arguments:
node src/lib/server.js --token "your_token" --server-url "https://your-server.com/plan" --teamspace-id "your-teamspace-id"Option 3: Environment File
Copy .env.example to .env and fill in your values:
cp .env.example .env
# Edit .env with your actual configuration valuesInstallation
Option 1: Direct NPX Usage (Recommended)
You can run the MCP server directly without installation:
npx @securedevops/mcp-devops-plan --token "your_token" --server-url "https://your-server.com/plan" --teamspace-id "your-teamspace-id"Option 2: Global Installation
npm install -g @securedevops/mcp-devops-plan
mcp-devops-plan --token "your_token" --server-url "https://your-server.com/plan" --teamspace-id "your-teamspace-id"Option 3: Local Development
git clone https://github.com/securedevops/mcp-devops-plan.git
cd mcp-devops-plan
npm install
npm run setup # Interactive configuration setup
npm start # Start the MCP serverUse with Claude Desktop
Option 1: NPX (Recommended)
Add the following to your Claude Desktop MCP configuration:
{
"mcpServers": {
"devops-plan": {
"command": "npx",
"args": [
"@securedevops/mcp-devops-plan",
"--token", "your_token_here",
"--server-url", "https://your-server.com/plan",
"--teamspace-id", "your_teamspace_id"
]
}
}
}Option 2: Environment Variables with NPX
{
"mcpServers": {
"devops-plan": {
"command": "npx",
"args": ["@securedevops/mcp-devops-plan"],
"env": {
"PLAN_ACCESS_TOKEN": "your_token_here",
"PLAN_SERVER_URL": "https://your-server.com/plan",
"PLAN_TEAMSPACE_ID": "your_teamspace_id"
}
}
}
}Option 3: Local Installation
Add the following to your Claude Desktop MCP configuration:
{
"mcpServers": {
"devops-plan": {
"command": "node",
"args": ["/path/to/mcp-devops-plan/src/lib/server.js"],
"env": {
"PLAN_ACCESS_TOKEN": "your_token_here",
"PLAN_SERVER_URL": "https://your-server.com/plan",
"PLAN_TEAMSPACE_ID": "your_teamspace_id"
}
}
}
}Or with command line arguments:
{
"mcpServers": {
"devops-plan": {
"command": "node",
"args": [
"/path/to/mcp-devops-plan/src/lib/server.js",
"--token", "your_token_here",
"--server-url", "https://your-server.com/plan",
"--teamspace-id", "your_teamspace_id"
]
}
}
}Usage
The MCP DevOps Plan server provides the following tools for interacting with DevOps Plan:
Available Tools
1. get_applications
Purpose: Retrieves all applications from the Plan system Parameters: None Usage: Use this to get a list of all available applications in your Plan instance. This is typically the first step to understand what applications you can work with.
2. get_available_projects
Purpose: Get the list of projects in Plan for a given application Parameters:
application(string): Name of the plan application Usage: Once you have an application name, use this to see all projects within that application.
3. get_available_components
Purpose: Get the list of components for a project in Plan for a given application Parameters:
application(string): Name of the applicationprojectId(string): ID of the project Usage: Retrieve available components within a specific project. Components are optional organizational units for work items.
4. get_available_workitem_types
Purpose: Get the available work item types for a project in Plan for a given application Parameters:
application(string): Name of the applicationprojectId(string): ID of the project Usage: Get the list of work item types (e.g., Task, Bug, Story) available in a specific project. This is needed before creating work items.
5. create_work_item
Purpose: Creates a new work item in Plan Parameters:
component(string, optional): An optional component name if any are available in the projecttitle(string): Title of the work itemdescription(string): Description of the work itemworkItemType(string): Type of the work item from the list of available work item typesapplication(string): Name of the applicationprojectId(string): ID of the project Usage: Create new work items like tasks, bugs, or stories in a specific project.
6. get_work_items
Purpose: Retrieves all work items for a given application, can filter by work item type and specific owner Parameters:
applicationName(string): Name of the applicationprojectId(string): ID of the projectworkitemType(string, optional): Type of the work item to filter by, if anyowner(string, optional): Filter the work items by owner, if any Usage: List existing work items with optional filtering. Use this to see current work items, track progress, or find specific items.
7. delete_work_item
Purpose: Deletes a work item in Plan Parameters:
dbid(string): The dbid field from the work item to identify it (this is the first field returned for each work item in the get_work_items tool)application(string): Name of the application Usage: Remove work items that are no longer needed. The dbid can be obtained from the get_work_items tool output.
Available Tools
14 toolschange_work_item_stateB
Changes the state of a work item in Plan using a two-step process (movement request + commit)
Inputs: dbid (required), application (required), targetState (required).
create_or_update_releaseA
Creates a new release or updates an existing release in Plan. If releaseDbid is provided, updates the release; otherwise creates a new one. If projectID is provided, automatically adds the release to the project (atomic operation).
Inputs: application (required), projectID (required), fields (required), releaseDbid.
create_or_update_sprintA
Creates a new sprint or updates an existing sprint in Plan. If sprintDbid is provided, updates the sprint; otherwise creates a new one. If projectID is provided, automatically adds the sprint to the project (atomic operation).
Inputs: application (required), sprintDbid, projectID, name, +2 more.
create_work_itemC
Creates a new work item in Plan
Inputs: title (required), description (required), workItemType (required), application (required), +2 more.
delete_work_itemC
Deletes a work item in Plan
Inputs: dbid (required), application (required).
get_applicationsB
Retrieves all applications from the Plan system
Inputs: no named parameters.
get_available_componentsC
Get the list of components for a project in Plan for a given application
Inputs: application (required), projectId (required).
get_available_projectsB
Get the list of projects in Plan for a given application
Inputs: application (required).
get_available_statesA
Gets the state transition matrix for work items in Plan for a given application, showing available transitions/actions
Inputs: application (required).
get_available_workitem_typesC
Get the available workitem types for a project in Plan for a given application
Inputs: application (required), projectId (required).
get_releasesB
Get the list of releases in Plan for a given application
Inputs: application (required).
get_sprintsB
Get the list of sprints in Plan for a given application
Inputs: application (required).
get_work_itemsC
Retrieves all work items for a given application, can filter by work item type and specific owner
Inputs: applicationName (required), projectName (required), workitemType, owner.
update_work_itemA
Updates fields of an existing work item. Provide the fields you want to update with their new values. IMPORTANT: When assigning a Sprint to a work item, the work item MUST first have the corresponding Release assigned to its PlannedRelease field. You cannot assign a sprint to a work item unless that work item is already part of the release that owns the sprint. Always update PlannedRelease before updating Sprint field.
Inputs: dbid (required), application (required), fields (required).
Tool Schema Changelog
Recent tool additions, removals, and schema changes observed during successful MCP inspections.
Loading tool schema changelog…
TDQS
Scored across 14 tools
Each tool has a clearly distinct purpose targeting specific resources and actions in the Plan system. For example, create_work_item, update_work_item, and delete_work_item handle different lifecycle stages, while get_available_components, get_available_projects, and get_available_states retrieve distinct metadata types. There is no overlap or ambiguity in functionality.
All tool names follow a consistent verb_noun pattern with snake_case, such as create_work_item, get_applications, and update_work_item. The naming is predictable and uniform across all 14 tools, making it easy for agents to understand and select the correct tool.
With 14 tools, the server is well-scoped for a DevOps Plan domain, covering work items, releases, sprints, applications, and metadata. Each tool serves a specific, necessary function without redundancy, aligning with typical tool counts for such systems (e.g., 3-15 tools).
The tool set provides complete CRUD and lifecycle coverage for work items (create, get, update, delete, state changes), releases and sprints (create/update, get), and essential metadata (applications, projects, components, states, types). There are no obvious gaps; agents can perform all core DevOps planning operations without dead ends.
Maintenance
Related MCP Connectors
Manage projects, tasks, time tracking, and team collaboration through natural language.
Crie épicos, features, histórias e tasks no Azure DevOps a partir de uma conversa.
Manage tickets, run agents and workflows, query tables, and search workspace knowledge.
Create and manage MeisterTask projects, tasks, and notes from your AI assistant.
Related MCP Servers
- FlicenseNot gradedqualityFmaintenanceEnables LLMs and AI applications to interact with Azure DevOps Work Items, supporting queries, filtering, status updates, date management, effort tracking, descriptions, and comments through natural language.-
- FlicenseNot gradedqualityDmaintenanceProvides Azure DevOps integration through MCP, enabling management of projects, work items, teams, and policies via natural language. Supports bulk work item creation with hierarchical relationships and iteration assignments.32 npm2-
- AlicenseBqualityDmaintenanceEnables management of Azure DevOps work items including Epics, Features, User Stories, Tasks, and Bugs through natural language. Supports CRUD operations, WIQL queries, work item relationships, and retrieval of project metadata such as iterations and area paths.45958 npmMIT
- AlicenseNot gradedqualityCmaintenanceEnables AI assistants to interact with Azure DevOps APIs for managing projects, work items, repositories, pull requests, and pipelines through natural language.51 npm1MIT