ALM Traceability MCP Server
PostgreSQL-based Model Context Protocol (MCP) server for ALM traceability management across Azure DevOps, Jira, and vector search.
Features
- ✅ Azure DevOps Integration - User stories, test cases, work items
- ✅ Jira Integration - Issues, test cases, custom fields
- ✅ PostgreSQL Traceability - Persistent traceability matrix
- ✅ Vector Search - Similarity search with Google Cloud Vertex AI
- ✅ Batch Operations - Create multiple test cases efficiently
- ✅ MCP Protocol - Full Claude Desktop integration
Installation
Option 1: Direct Python Installation
# Clone repository
git clone https://github.com/Vk171127/mcp-server-for-alm-tools.git
cd mcp-server-for-alm-tools
# Install
pip install -e .
# With vector search support
pip install -e ".[vector]"
Option 2: Using NPX (Recommended for MCP)
# Install globally
npm install -g @yourorg/alm-traceability-mcp
# Or use directly with npx
npx @yourorg/alm-traceability-mcp
Configuration
1. Environment Variables
Copy .env.example to .env and configure:
# Azure DevOps
ADO_ORG=your-organization
ADO_PROJECT=your-project
ADO_PAT=your-pat-token
# Jira
JIRA_BASE_URL=https://yourcompany.atlassian.net
JIRA_EMAIL=your-email@company.com
JIRA_API_TOKEN=your-api-token
JIRA_PROJECT_KEY=PROJECT
# PostgreSQL
DB_HOST=localhost
DB_PORT=5432
DB_NAME=alm_traceability
DB_USER=postgres
DB_PASSWORD=your-password
2. Claude Desktop Configuration
Add to ~/Library/Application Support/Claude/claude_desktop_config.json (macOS) or %APPDATA%\Claude\claude_desktop_config.json (Windows):
{
"mcpServers": {
"alm-traceability": {
"command": "python",
"args": ["-m", "mcp_main"],
"env": {
"ADO_ORG": "your-org",
"ADO_PROJECT": "your-project",
"ADO_PAT": "your-pat",
"DB_HOST": "localhost",
"DB_NAME": "alm_traceability",
"DB_USER": "postgres",
"DB_PASSWORD": "your-password"
}
}
}
}
3. Database Setup
-- Create database
CREATE DATABASE alm_traceability;
-- Run schema (see schema.sql)
\i schema.sql
Usage
Starting the Server
# Activate virtual environment
source venv/bin/activate
# Run server
python -m mcp_main
Available MCP Tools
Configuration Tools
configure_ado_connection- Set up Azure DevOpsconfigure_jira_connection- Set up Jirainitialize_traceability_database- Initialize PostgreSQL
Azure DevOps Tools
fetch_user_story- Get user story detailsfetch_testcases- Get linked test casescreate_testcase- Create new test casebatch_create_testcases- Create multiple test casesprepare_test_case_context- Prepare context for generation
Jira Tools
fetch_jira_issue- Get Jira issue detailsfetch_jira_testcases- Get linked test casescreate_jira_testcase- Create new test casebatch_create_jira_testcases- Create multiple test casesprepare_jira_test_case_context- Prepare context for generation
Traceability Tools
create_traceability_link- Link itemsget_traceability_links_for_item- Get all linksgenerate_traceability_report- Generate reportsget_traceability_matrix_for_session- Get full matrix
Vector Search Tools
search_similar_stories- Find similar user storiesconfigure_vertex_ai- Set up vector search
Example Usage with Claude
User: "Configure Azure DevOps for my organization 'contoso' and project 'HealthApp'"
Claude: [calls configure_ado_connection]
User: "Fetch user story 12345 and prepare context for test generation"
Claude: [calls prepare_test_case_context with user_story_id=12345]
User: "Generate 5 test cases covering positive, negative, and edge cases"
Claude: [calls batch_create_testcases with generated test cases]
Development
# Install development dependencies
pip install -e ".[dev]"
# Run tests
pytest
# Format code
black .
isort .
# Lint
flake8
Architecture
┌─────────────────┐
│ Claude Desktop │
└────────┬────────┘
│ MCP Protocol
▼
┌─────────────────┐
│ MCP Server │
│ (Python) │
└────────┬────────┘
│
┌────┴────┬────────┬─────────┐
▼ ▼ ▼ ▼
┌───────┐ ┌──────┐ ┌──────┐ ┌──────────┐
│ ADO │ │ Jira │ │ DB │ │ Vector │
│Client │ │Client│ │(PG) │ │ Search │
└───────┘ └──────┘ └──────┘ └──────────┘
Troubleshooting
Common Issues
-
Connection Refused
- Ensure PostgreSQL is running
- Check connection string in .env
-
Authentication Errors
- Verify PAT/API tokens are valid
- Check token permissions
-
Import Errors
- Ensure all dependencies installed:
pip install -e ".[vector]" - Activate virtual environment
- Ensure all dependencies installed:
Logs
Check logs at: ~/.mcp/logs/alm-traceability.log
License
MIT
Contributing
- Fork the repository
- Create feature branch
- Make changes
- Run tests
- Submit pull request
Support
- GitHub Issues: https://github.com/Vk171127/mcp-server-for-alm-tools/issues
- Documentation: See
/docsfolder
Metadata
Release files for alm-traceability-mcp 1.0.6
For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.
Source distribution (sdist)
| File | Size | Uploaded | |
|---|---|---|---|
| alm_traceability_mcp-1.0.6.tar.gz | 26.0 kB | Details |
Built distribution (wheel)
| File | Interpreter | ABI | Platform | Reset |
|---|---|---|---|---|
| alm_traceability_mcp-1.0.6-py3-none-any.whl | Python 3 | none | any | Details |
Total release size: 53.7 kB
Release files / alm_traceability_mcp-1.0.6.tar.gz
| Download URL | alm_traceability_mcp-1.0.6.tar.gz |
|---|---|
| Size | 26.0 kB |
| Tags | Source |
|
SHA-256 checksum How to use checksums |
00c2dbf74be1248b31b463e6a1ba8a4b0f5c93a452b847f71bba014d404f6c2d
|
|
BLAKE2b-256 checksum How to use checksums |
85bc06427e0ef286a07144f170c88e27c3af0c30eb4d15240dcb3b09592f1ede
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/6.2.0 CPython/3.12.11
|
Release files / alm_traceability_mcp-1.0.6-py3-none-any.whl
| Download URL | alm_traceability_mcp-1.0.6-py3-none-any.whl |
|---|---|
| Size | 27.7 kB |
| Tags | Python 3 |
|
SHA-256 checksum How to use checksums |
7328f6b72973cae2b7c857efbb304e5fd36516001d26760c76dad72b5571cefe
|
|
BLAKE2b-256 checksum How to use checksums |
3b5cbf1a254729b75751e7f2236e883a7e52e4d8aa5e8d8ae2f20e4fcf75a82e
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/6.2.0 CPython/3.12.11
|