An Agile Project Management MCP Server that transforms LLMs into powerful agile assistants
Project description
Agile MCP Server
Transform Large Language Models into powerful agile project management assistants through the Model Context Protocol (MCP).
Overview
The Agile MCP Server provides a comprehensive set of tools for agile project management, including user story creation, sprint planning, progress tracking, and team coordination. It integrates seamlessly with MCP-compatible clients like Claude Desktop and Cursor to bring agile workflows directly into your development environment.
Why Agile MCP?
- Empower LLMs: Turn your LLM into a proactive agile assistant, capable of managing projects, tracking progress, and guiding development workflows.
- Local & Private: All your project data is stored locally, ensuring privacy and control.
- Seamless Integration: Works with any MCP-compatible client, embedding agile practices directly into your existing development tools.
- Type-Safe & Robust: Built with Pydantic for robust data models and type-safe operations, ensuring reliability and maintainability.
Features
- User Story Management: Create, update, and track user stories with priorities, points, and tags
- Sprint Planning: Organize stories into time-boxed sprints with goals and timelines
- Progress Tracking: Monitor sprint progress, story completion, and team velocity
- MCP Integration: Works with any MCP-compatible client for seamless workflow integration
- Local Storage: All data stored locally in your project directory
- Type-Safe: Full TypeScript support with proper parameter validation
Quick Start
Installation
To get started with the Agile MCP Server, clone the repository and install dependencies:
git clone <repository-url>
cd agile_mcp
uv sync
Running the Server
You can run the server with your project directory:
uv run python -m agile_mcp --project .
uv run python -m agile_mcp --project .
# Or start without project (set later using tools)
uv run python -m agile_mcp
MCP Client Integration
Add to your Claude Desktop configuration:
{
"mcpServers": {
"agile-mcp": {
"command": "uv",
"args": ["run", "python", "-m", "agile_mcp", "--project", "/path/to/your/project"],
"cwd": "/path/to/agile-mcp"
}
}
}
Documentation
- User Guide - Comprehensive guide for getting started and daily workflows
- API Reference - Complete documentation of all MCP tools and parameters
- Examples - Code examples and usage demonstrations
Available Tools
Project Management
set_project- Set the project directoryget_project- Get the current project directory
User Story Management
create_story- Create a new user storyget_story- Retrieve a story by IDupdate_story- Update an existing storylist_stories- List stories with optional filteringdelete_story- Delete a story
Sprint Management
create_sprint- Create a new sprintget_sprint- Retrieve a sprint by IDlist_sprints- List sprints with optional filteringupdate_sprint- Update an existing sprintmanage_sprint_stories- Add/remove stories from sprintsget_sprint_progress- Get detailed sprint progressget_active_sprint- Get the currently active sprint
Project Structure
agile_mcp/
├── src/agile_mcp/ # Main source code
│ ├── models/ # Data models (Story, Sprint, etc.)
│ ├── services/ # Business logic services
│ ├── storage/ # File system storage layer
│ ├── tools/ # MCP tool implementations
│ └── server.py # Main MCP server
├── docs/ # Documentation
│ ├── API_REFERENCE.md # Complete API documentation
│ └── USER_GUIDE.md # User guide and workflows
├── examples/ # Usage examples
├── tests/ # Test suite
└── README.md # This file
Development
Requirements
- Python 3.10+
- uv (for package management)
Setup Development Environment
# Install dependencies including dev tools
uv sync
# For development, you can also install the package in editable mode
# This allows you to run examples and tools without full path specifications
uv pip install -e .
# Run tests (includes coverage reporting by default)
uv run pytest
# Run tests with verbose coverage report
uv run pytest -v
# Run tests without coverage (for faster execution)
uv run pytest --no-cov
# Type checking
uv run mypy src/
# Code formatting
uv run ruff format src/ tests/
uv run ruff check src/ tests/
Running Examples
The example scripts demonstrate best practices for using the Agile MCP Server and can be run after setting up the development environment:
# Option 1: Using uv run (recommended for development)
uv run python examples/basic_usage_demo.py
uv run python examples/sprint_demo.py
# Option 2: After editable installation (alternative)
python examples/basic_usage_demo.py
python examples/sprint_demo.py
The examples demonstrate:
basic_usage_demo.py: Core functionality including story creation, listing, and updatessprint_demo.py: Complete sprint workflow from creation to completion
Both examples use proper JSON parsing patterns that mirror how real MCP clients handle tool responses, making them excellent references for integration work.
Test Coverage
The project maintains a minimum test coverage of 75%. Coverage reports are automatically generated when running tests:
- Terminal Report: Shows missing lines for each file
- HTML Report: Detailed interactive report in
htmlcov/directory - Coverage Threshold: Tests will fail if coverage drops below 75%
View the HTML coverage report by opening htmlcov/index.html in your browser after running tests.
Transport Options
The server supports multiple transport protocols:
# STDIO transport (default) - for direct LLM integration
uv run python -m agile_mcp --project . --transport stdio
# SSE transport - for web-based clients
uv run python -m agile_mcp --project . --transport sse --host 0.0.0.0 --port 8000
Project Directory Management
Start the server without a project directory and set it later using the set_project tool via your LLM client.
Examples
Basic Workflow
# 1. Set up project
set_project(project_path=".")
# 2. Create a user story
create_story(
title="User Authentication",
description="Implement secure login system",
priority="high",
tags="authentication, security"
)
# 3. Create a sprint
create_sprint(
name="Sprint 1 - Foundation",
goal="Establish core functionality",
start_date="2025-01-07",
end_date="2025-01-21"
)
# 4. Add story to sprint
manage_sprint_stories(
sprint_id="SPRINT-123",
action="add",
story_id="STORY-456"
)
# 5. Start the sprint
update_sprint(sprint_id="SPRINT-123", status="active")
See the examples directory for more detailed usage examples.
Architecture
The Agile MCP Server follows a clean architecture pattern:
- Tools Layer: MCP-compatible tool interfaces
- Services Layer: Business logic and workflow management
- Storage Layer: File-based persistence with JSON storage
- Models Layer: Type-safe data models with Pydantic
All data is stored locally in a .agile directory within your project, ensuring full control and privacy of your project data.
Contributing
- Fork the repository
- Create a feature branch (
git checkout -b feature/amazing-feature) - Make your changes following the coding standards
- Add tests for new functionality
- Ensure all tests pass (
uv run pytest) - Commit your changes (
git commit -m 'Add amazing feature') - Push to the branch (
git push origin feature/amazing-feature) - Open a Pull Request
License
This project is licensed under the MIT License - see the LICENSE file for details.
Acknowledgments
- Built on the Model Context Protocol (MCP) standard
- Inspired by agile development practices and tools
- Uses FastMCP for MCP server implementation
Project details
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
File details
Details for the file agile_mcp_server-0.4.0.tar.gz.
File metadata
- Download URL: agile_mcp_server-0.4.0.tar.gz
- Upload date:
- Size: 170.6 kB
- Tags: Source
- Uploaded using Trusted Publishing? Yes
- Uploaded via: twine/6.1.0 CPython/3.12.9
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
c2ec11706d3cd57fba7b735b2bf1216e060bd88b78fec4e0e7f0b3b9272ea128
|
|
| MD5 |
7dceff9d59dc7e373af84d306d9454cd
|
|
| BLAKE2b-256 |
942d7dabe2775be1715245c570b38ff5ec3a05725b1a937398dc99930868ee66
|
Provenance
The following attestation bundles were made for agile_mcp_server-0.4.0.tar.gz:
Publisher:
publish-to-pypi.yml on JulianKimmig/agile_mcp
-
Statement:
-
Statement type:
https://in-toto.io/Statement/v1 -
Predicate type:
https://docs.pypi.org/attestations/publish/v1 -
Subject name:
agile_mcp_server-0.4.0.tar.gz -
Subject digest:
c2ec11706d3cd57fba7b735b2bf1216e060bd88b78fec4e0e7f0b3b9272ea128 - Sigstore transparency entry: 268660026
- Sigstore integration time:
-
Permalink:
JulianKimmig/agile_mcp@2b68185c7b7ef93d3187d48c58f07ef37baa0070 -
Branch / Tag:
refs/tags/v0.4.0 - Owner: https://github.com/JulianKimmig
-
Access:
public
-
Token Issuer:
https://token.actions.githubusercontent.com -
Runner Environment:
github-hosted -
Publication workflow:
publish-to-pypi.yml@2b68185c7b7ef93d3187d48c58f07ef37baa0070 -
Trigger Event:
push
-
Statement type:
File details
Details for the file agile_mcp_server-0.4.0-py3-none-any.whl.
File metadata
- Download URL: agile_mcp_server-0.4.0-py3-none-any.whl
- Upload date:
- Size: 75.2 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? Yes
- Uploaded via: twine/6.1.0 CPython/3.12.9
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
35b30f409286a67f87b18c747d86c226848b182576dd3403fd4dac49fad1219a
|
|
| MD5 |
524bd5590507fbd628313da3db2e9ce4
|
|
| BLAKE2b-256 |
eafe69d05f4873468f14290ace9dd4322a19608ae128d47116761b45315e6286
|
Provenance
The following attestation bundles were made for agile_mcp_server-0.4.0-py3-none-any.whl:
Publisher:
publish-to-pypi.yml on JulianKimmig/agile_mcp
-
Statement:
-
Statement type:
https://in-toto.io/Statement/v1 -
Predicate type:
https://docs.pypi.org/attestations/publish/v1 -
Subject name:
agile_mcp_server-0.4.0-py3-none-any.whl -
Subject digest:
35b30f409286a67f87b18c747d86c226848b182576dd3403fd4dac49fad1219a - Sigstore transparency entry: 268660029
- Sigstore integration time:
-
Permalink:
JulianKimmig/agile_mcp@2b68185c7b7ef93d3187d48c58f07ef37baa0070 -
Branch / Tag:
refs/tags/v0.4.0 - Owner: https://github.com/JulianKimmig
-
Access:
public
-
Token Issuer:
https://token.actions.githubusercontent.com -
Runner Environment:
github-hosted -
Publication workflow:
publish-to-pypi.yml@2b68185c7b7ef93d3187d48c58f07ef37baa0070 -
Trigger Event:
push
-
Statement type: