Model Context Protocol (MCP) Server Manual
Connect Anthropic Claude Desktop, Cursor, and autonomous AI agents directly to the 114 project deliverables and Draft 2020-12 schemas via standard JSON-RPC 2.0 stdio communication.
1. Protocol Architecture & Handshake Flow
The Model Context Protocol (MCP) is an open specification enabling AI assistants to securely connect to external data repositories and execution tools.
Tasleemat packages an official standalone executable (tasleemat-mcp) that communicates via standard input/output (stdio)
using strict JSON-RPC 2.0 framing. This design eliminates TCP port binding conflicts and allows seamless local sandboxing.
sequenceDiagram
autonumber
actor User as Engineer / PM
participant Host as AI Client (Cursor / Claude Desktop)
participant Server as Tasleemat MCP (stdio)
participant Engine as Tasleemat Core Engine
Host->>Server: JSON-RPC "initialize" (capabilities, client info)
Server-->>Host: Server capabilities (tools advertised)
Host->>Server: JSON-RPC "notifications/initialized"
User->>Host: "Tailor deliverables for Tier 2 Agile project"
Host->>Server: "tools/call" (name: "tasleemat_tailor_project", args: {tier: 2, pack: "agile"})
Server->>Engine: get_tailoring_profile(tier=2, pack="agile")
Engine-->>Server: List of 34 Deliverable IDs
Server-->>Host: JSON-RPC Result (structured deliverable manifest)
Host->>User: "Here is your tailored governance manifest..."
2. IDE & Assistant Configuration Setup
A. Anthropic Claude Desktop
Add the following snippet to your claude_desktop_config.json file:
- macOS:
~/Library/Application Support/Claude/claude_desktop_config.json - Windows:
%APPDATA%\Claude\claude_desktop_config.json - Linux:
~/.config/Claude/claude_desktop_config.json
{
"mcpServers": {
"tasleemat": {
"command": "tasleemat-mcp",
"args": []
}
}
}
B. Cursor AI IDE
Create or edit .cursor/mcp.json in your project root or user configuration:
{
"mcpServers": {
"tasleemat": {
"command": "python3",
"args": ["-m", "tasleemat.mcp"]
}
}
}
C. VS Code (Cline / Roo Code / Continue.dev)
In your extension settings under MCP Servers, declare:
{
"mcpServers": {
"tasleemat": {
"command": "tasleemat-mcp",
"args": [],
"disabled": false,
"autoApprove": [
"tasleemat_list_forms",
"tasleemat_get_form",
"tasleemat_get_schema",
"tasleemat_validate",
"tasleemat_tailor_project",
"tasleemat_calculate_eva"
]
}
}
}
3. Exhaustive 6 MCP Tools Reference & Payloads
1. tasleemat_list_forms
Lists available deliverables filtered by phase, sizing tier, or methodology pack.
// Client Request
{
"jsonrpc": "2.0",
"id": 1,
"method": "tools/call",
"params": {
"name": "tasleemat_list_forms",
"arguments": {
"phase": "03",
"lang": "en"
}
}
}
// Server Response
{
"jsonrpc": "2.0",
"id": 1,
"result": {
"content": [
{
"type": "text",
"text": "[{\"id\": \"PMO-03.01\", \"name\": \"Project Charter\", \"phase\": \"03\"}, ...]"
}
]
}
}
2. tasleemat_get_form
Fetches specific asset contents for a deliverable: template, guide, example, prompt, schema, or dictionary.
// Client Request
{
"jsonrpc": "2.0",
"id": 2,
"method": "tools/call",
"params": {
"name": "tasleemat_get_form",
"arguments": {
"artifact_id": "PMO-03.01",
"asset_type": "template",
"lang": "en"
}
}
}
3. tasleemat_get_schema
Retrieves the complete JSON Schema Draft 2020-12 definition to enable client-side schema inspection or agent prompt injection.
// Client Request
{
"jsonrpc": "2.0",
"id": 3,
"method": "tools/call",
"params": {
"name": "tasleemat_get_schema",
"arguments": {
"artifact_id": "PMO-04.08.02"
}
}
}
4. tasleemat_validate
Validates a structured JSON payload against the companion schema and returns exact JSON path errors.
// Client Request
{
"jsonrpc": "2.0",
"id": 4,
"method": "tools/call",
"params": {
"name": "tasleemat_validate",
"arguments": {
"artifact_id": "PMO-03.01",
"data": {
"project_id": "PRJ-01",
"project_name": "Cloud Platform",
"sponsor": "Sarah Al-Ahmad"
},
"mode": "strict"
}
}
}
// Server Response
{
"jsonrpc": "2.0",
"id": 4,
"result": {
"content": [
{
"type": "text",
"text": "{\"valid\": true, \"errors\": [], \"schema_id\": \"https://fakhr.me/schemas/pmo-03-01.json\"}"
}
]
}
}
5. tasleemat_tailor_project & 6. tasleemat_calculate_eva
tasleemat_tailor_project returns required deliverables for a tier/pack.
tasleemat_calculate_eva computes attested EVM math metrics for PMO-06.05.
// Calculate EVA Metrics Request
{
"jsonrpc": "2.0",
"id": 6,
"method": "tools/call",
"params": {
"name": "tasleemat_calculate_eva",
"arguments": {
"pv": 500000,
"ev": 475000,
"ac": 520000,
"bac": 1200000
}
}
}
4. Step-by-Step Tutorials
Tutorial 1: Autonomous PMO Deliverable Drafting in Cursor Agent Mode
Once .cursor/mcp.json is saved, switch Cursor Composer to Agent Mode and prompt:
Cursor will autonomously execute tasleemat_get_form, inspect constraints via tasleemat_get_schema,
run tasleemat_validate to confirm schema conformance, and write the finalized markdown file.
Tutorial 2: Building a Standalone Python MCP Client
You can interact with tasleemat-mcp from any Python application via standard subprocessing:
import subprocess
import json
def call_mcp_tool(tool_name: str, arguments: dict) -> dict:
# Invokes a tool on the Tasleemat MCP server via stdio JSON-RPC
proc = subprocess.Popen(
["tasleemat-mcp"],
stdin=subprocess.PIPE,
stdout=subprocess.PIPE,
stderr=subprocess.PIPE,
text=True
)
# 1. Initialize Handshake
init_req = {"jsonrpc": "2.0", "id": 1, "method": "initialize", "params": {"capabilities": {}}}
proc.stdin.write(json.dumps(init_req) + "\n")
proc.stdin.flush()
proc.stdout.readline() # consume init response
# 2. Call Tool
call_req = {
"jsonrpc": "2.0",
"id": 2,
"method": "tools/call",
"params": {"name": tool_name, "arguments": arguments}
}
proc.stdin.write(json.dumps(call_req) + "\n")
proc.stdin.flush()
response_line = proc.stdout.readline()
proc.terminate()
return json.loads(response_line)
# Example: tailor project for Tier 2 Agile
result = call_mcp_tool("tasleemat_tailor_project", {"tier": 2, "pack": "agile"})
print("Tailored Result:", result)