thornzero/project-manager
3.2
If you are the rightful owner of project-manager and would like to certify it and/or have it hosted online, please leave a comment on the right or send an email to dayong@mcphub.com.
A comprehensive Model Context Protocol (MCP) server that provides project management, documentation, and development tools for any project.
Tools
5
Resources
0
Prompts
0
Project Manager
A comprehensive Model Context Protocol (MCP) server that provides project management, documentation, and development tools for any project.
Features
🎯 Project Management Tools
- Goals Management: Create, update, list, and track project goals
- Architecture Decision Records (ADRs): Manage ADR documents with automatic discovery
- Change Logging: Track project changes with timestamps and file references
🔍 Development Tools
- Repository Search: Search codebase using ripgrep/grep with line numbers
- CI Integration: Run tests and check last failure status
- Markdown Linting: Validate and auto-fix markdown formatting issues
📝 Template System
- Template Management: Register, update, delete markdown templates
- Variable Support: Typed variables (string, date, list, number, boolean)
- Content Generation: Apply templates to generate standardized documents
Installation
Prerequisites
- Go 1.25+
- SQLite (included via modernc.org/sqlite)
- markdownlint-cli (optional, for markdown linting)
Build from Source
git clone https://github.com/thornzero/project-manager.git
cd project-manager
go build -o project-manager ./cmd/project-manager
Install markdownlint-cli (optional)
npm install -g markdownlint-cli
Usage
Cursor Integration
Add to your ~/.cursor/mcp.json:
{
"mcpServers": {
"project-manager": {
"command": "/path/to/project-manager/project-manager",
"transport": "stdio"
}
}
}
Available Tools
Project Management
goals_list- List active project goalsgoals_add- Add new project goalsgoals_update- Update existing goalsadrs_list- List Architecture Decision Recordsadrs_get- Get ADR content by IDstate_log_change- Log project changes
Development
repo_search- Search repository for text patternsci_run_tests- Run project testsci_last_failure- Get last test failure informationmarkdown_lint- Lint markdown files for formatting issues
Templates
template_list- List available markdown templatestemplate_register- Register new templatestemplate_get- Get template detailstemplate_update- Update existing templatestemplate_delete- Delete templatestemplate_apply- Apply templates to generate content
Configuration
Markdown Linting
Create a .markdownlint.json file in your project root:
{
"MD013": {
"line_length": 120,
"code_blocks": false,
"tables": false
},
"MD022": true,
"MD032": true,
"MD029": {
"style": "ordered"
},
"MD036": false,
"MD041": false
}
Database
The server automatically creates a SQLite database at .agent/state.db with the following tables:
goals- Project goals and tasksadrs- Architecture Decision Recordsci_runs- CI test run historymarkdown_templates- Template definitionstemplate_variables- Template variable definitions
Template System
Creating Templates
# Register a README template
mcp-server template_register \
--id "README" \
--name "Project README Template" \
--category "documentation" \
--content "# {{.ProjectName}}\n\n{{.Description}}" \
--variables '[
{"name": "ProjectName", "type": "string", "required": true},
{"name": "Description", "type": "string", "required": true}
]'
Applying Templates
# Generate README from template
mcp-server template_apply \
--template_id "README" \
--variables '{"ProjectName": "My Project", "Description": "A great project"}' \
--output_path "README.md"
Development
Project Structure
project-manager/
├── cmd/project-manager/ # Main server entry point
├── schema.sql # Database schema
├── go.mod # Go module definition
├── README.md # This file
└── docs/ # Documentation
├── MARKDOWN_TOOLS_RESEARCH.md
└── TROUBLESHOOTING.md
Adding New Tools
- Define input/output structs
- Implement handler function
- Register tool in cmd/project-manager/main.go
- Add to database schema if needed
Testing
# Test server directly
echo '{"jsonrpc": "2.0", "id": 1, "method": "initialize", "params": {}}' | ./mcp-server
# Test specific tool
echo '{"jsonrpc": "2.0", "id": 1, "method": "tools/call", "params": {"name": "goals_list", "arguments": {}}}' | ./mcp-server
Contributing
- Fork the repository
- Create a feature branch
- Make your changes
- Add tests if applicable
- Submit a pull request
License
MIT License - see LICENSE file for details.
Acknowledgments
- Model Context Protocol for the MCP specification
- Go SDK for MCP for the Go implementation
- markdownlint for markdown validation rules