A comprehensive Model Context Protocol (MCP) server that provides project management, documentation, and development tools for any project.
- 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
- 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 Management: Register, update, delete markdown templates
- Variable Support: Typed variables (string, date, list, number, boolean)
- Content Generation: Apply templates to generate standardized documents
- Go 1.25+
- SQLite (included via modernc.org/sqlite)
- markdownlint-cli (optional, for markdown linting)
git clone https://github.com/thornzero/project-manager.git
cd project-manager
go build -o project-manager ./cmd/project-manager
npm install -g markdownlint-cli
Add to your ~/.cursor/mcp.json
:
{
"mcpServers": {
"project-manager": {
"command": "/path/to/project-manager/project-manager",
"transport": "stdio"
}
}
}
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
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
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
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
}
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
# 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}
]'
# Generate README from template
mcp-server template_apply \
--template_id "README" \
--variables '{"ProjectName": "My Project", "Description": "A great project"}' \
--output_path "README.md"
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
- Define input/output structs
- Implement handler function
- Register tool in cmd/project-manager/main.go
- Add to database schema if needed
# 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
- Fork the repository
- Create a feature branch
- Make your changes
- Add tests if applicable
- Submit a pull request
MIT License - see LICENSE file for details.
- Model Context Protocol for the MCP specification
- Go SDK for MCP for the Go implementation
- markdownlint for markdown validation rules