Skip to main content
Glama
osama-ata

P6XER MCP Server

by osama-ata

P6XER MCP Server

mcp-name: io.github.osama-ata/p6xer-mcp-server

PyPI version Python 3.12+ License: MIT MCP

A full-featured Model Context Protocol (MCP) server for Primavera P6 XER files, built on PyP6XER.

Exposes 13 Tools, 3 Resources, and 2 Prompts so any MCP-compatible AI client (Claude Desktop, Claude Code, Cursor, etc.) can interactively parse, query, and analyze .xer schedule files.


πŸš€ Features

πŸ”§ Tools (13)

Tool

Description

parse_xer_file

Parse an XER file β€” project list, totals, status breakdowns

get_project_activities

Activities with filters: project_id, project_short_name, status, task_type

get_critical_path

Critical path activities (float ≀ 0), sorted by early start

analyze_resource_utilization

Planned/actual hours & costs per resource; over-allocation flags

check_schedule_quality

DCMA-style check: missing logic, long durations, high float, unresourced tasks

get_resources

List resources, optionally filtered by type

get_resource_assignments

Resource–activity assignments with enriched names and costs

get_wbs

Work Breakdown Structure hierarchy

get_relationships

Predecessor/successor relationships enriched with task codes

get_calendars

Calendar definitions with hours-per-period data

get_schedule_summary

At-a-glance stats: counts, date range, critical count

get_earned_value

EVM: PV, EV, AC, CV, SV, CPI, SPI, EAC per project

get_activity_detail

Full detail for one activity (preds + succs + resources)

πŸ“‹ Resources (3)

URI

Description

xer-project://{file_path}/{project_id}

Detailed text summary of a specific project

xer-activities://{file_path}

Activities summary with status breakdown and duration stats

xer-resources://{file_path}

Resources summary with type breakdown and assignment stats

πŸ’¬ Prompts (2)

Prompt

Types

analyze_xer_project

general Β· schedule Β· resources Β· progress Β· quality

xer_reporting_prompt

executive Β· detailed Β· critical_path Β· resource Β· milestone


Related MCP server: project-mcp

οΏ½ Install from Store

Via PyPI (uvx β€” no install needed)

uvx p6xer-mcp-server

Via PyPI (pip)

pip install p6xer-mcp-server
p6xer-mcp-server

Via Smithery

Search for p6xer-mcp-server on smithery.ai and click Install. It will generate the correct Claude Desktop config automatically.

Via GitHub MCP Registry

The server is listed in the GitHub MCP Registry. In Claude Code:

claude mcp add p6xer -- uvx p6xer-mcp-server

Claude Desktop config (after PyPI install)

{
  "mcpServers": {
    "p6xer": {
      "command": "uvx",
      "args": ["p6xer-mcp-server"]
    }
  }
}

οΏ½πŸ“¦ Installation

# Clone the repo
git clone https://github.com/osama-ata/p6xer-mcp-server.git
cd p6xer-mcp-server

# Install with uv (recommended)
uv sync

# Or with pip
pip install "mcp[cli]>=1.6.0,<2.0.0" pyp6xer

πŸƒ Running

Development / MCP Inspector:

uv run mcp dev src/p6xer_mcp_server/server.py

Stdio (Claude Desktop / Claude Code):

uv run p6xer-mcp-server

πŸ”Œ Claude Desktop

Add to claude_desktop_config.json:

{
  "mcpServers": {
    "p6xer": {
      "command": "uvx",
      "args": ["p6xer-mcp-server"]
    }
  }
}

Config file locations:

  • macOS: ~/Library/Application Support/Claude/claude_desktop_config.json

  • Windows: %APPDATA%\Claude\claude_desktop_config.json

  • Linux: ~/.config/Claude/claude_desktop_config.json

πŸ”Œ Claude Code (CLI)

claude mcp add p6xer -- uvx p6xer-mcp-server

πŸ’¬ Example Prompts

Once connected:

Parse project.xer and give me an overview of all projects

What are all the critical path activities, sorted by start date?

Run a DCMA schedule quality check on project.xer

Calculate earned value metrics β€” what are the CPI and SPI?

Show all resource assignments for "John Smith"

What are the predecessors and successors of activity A1000?

List all over-allocated labor resources

Generate an executive summary report for project.xer

πŸ“Š Tool Reference

Filter parameters (most tools accept)

  • project_id – numeric P6 project ID (e.g. "1234")

  • project_short_name – project short name string (e.g. "PROJ1")

Status codes

TK_NotStart Β· TK_Active Β· TK_Complete

Task types

TT_Task Β· TT_Mile Β· TT_FinMile Β· TT_WBS

Resource types

RT_Labor Β· RT_Mat Β· RT_Equip


πŸ—‚οΈ Project Structure

p6xer-mcp-server/
β”œβ”€β”€ src/
β”‚   └── p6xer_mcp_server/
β”‚       β”œβ”€β”€ __init__.py
β”‚       └── server.py       # All tools, resources, and prompts
β”œβ”€β”€ manifest.json           # MCPB bundle manifest
β”œβ”€β”€ mcp.json                # MCP registry metadata
β”œβ”€β”€ smithery.yaml           # Smithery registry configuration
β”œβ”€β”€ pyproject.toml
└── README.md

πŸ“‹ Requirements

  • Python β‰₯ 3.10

  • mcp[cli] >= 1.6.0, < 2.0.0

  • pyp6xer >= 1.16.0


πŸ“„ License

MIT


🚒 Publishing to PyPI (GitHub Actions + Trusted Publishing)

This repository includes a release workflow at .github/workflows/publish-to-pypi.yml based on the PyPA guide and pypa/gh-action-pypi-publish.

1) Configure Trusted Publishers

Create trusted publishers for this exact workflow file:

Use these values:

  • Owner: osama-ata

  • Repository: p6xer-mcp-server

  • Workflow file: publish-to-pypi.yml

  • Environment: pypi (for PyPI), testpypi (for TestPyPI)

  • Project name: p6xer-mcp-server

2) Create GitHub Environments

In repository settings, create two environments:

  • pypi

  • testpypi

Recommended security setup:

  • Require manual approval for pypi

  • No approval required for testpypi

3) Build locally (optional sanity check)

python -m pip install --upgrade build twine
python -m build
python -m twine check dist/*

4) Release flow

  • Push to main: publishes to TestPyPI

  • Push tag v* (for example v0.1.1): publishes to PyPI

git tag v0.1.1
git push origin v0.1.1

Available Tools

13 tools
analyze_resource_utilizationA
Summarize resource utilization: planned/actual hours and costs per resource.
Labor resources (RT_Labor) are flagged as over_allocated if planned hours
exceed max_hours_per_year (default 2080 = 40 hrs/week x 52 weeks).
Results are sorted by planned hours descending.
ParametersJSON Schema
NameRequiredDescriptionDefault
file_pathYes
max_hours_per_yearNo

TDQS

A3.8/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

No annotations are provided, so the description must fully disclose behavior. It explains that labor resources (RT_Labor) are flagged as over_allocated when planned hours exceed max_hours_per_year (default 2080), and results are sorted by planned hours descending. This adds meaningful behavioral context beyond structured fields, though it does not mention whether the tool is read-only or handles errors.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is three concise sentences, front-loaded with the main purpose. No unnecessary words. It efficiently covers core behavior but could be slightly more structured (e.g., bullet points).

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given the tool has two parameters, no output schema, and no annotations, the description covers the main analysis but omits details: return format (what fields are in the summary?), error behavior, and file_path meaning. It is adequate but not fully complete for an agent to invoke without assumptions.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 0%, so description must compensate. It clarifies max_hours_per_year's default value and derivation (40 hrs/week x 52 weeks), adding value. However, file_path is left completely unexplained, relying on the parameter name alone. Overall, partial compensation for the coverage gap.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the tool summarizes resource utilization with planned/actual hours and costs, and specifies how over-allocation is flagged. It uses a specific verb ('summarize') and resource, distinguishing it from sibling tools like get_resources or get_resource_assignments.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description implies the tool is for analyzing resource utilization but provides no explicit guidance on when to use it vs alternatives or when not to use it. No exclusion criteria or alternative tool names are mentioned.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

check_schedule_qualityA
DCMA-style schedule quality check on open/in-progress activities.

Identifies:
- Activities missing predecessors (excluding start milestones)
- Activities missing successors (excluding finish milestones)
- Long-duration activities (threshold: long_duration_days, default 20)
- High-float activities (threshold: high_float_days, default 44)
- TT_Task activities without any resource assignment
- Activities missing early start dates
ParametersJSON Schema
NameRequiredDescriptionDefault
file_pathYes
project_idNo
project_short_nameNo
long_duration_daysNo
high_float_daysNo

TDQS

A3.8/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

No annotations are provided, so the description must carry the full burden. It describes the checks performed (missing dates, resource assignments, etc.), implying read-only analysis. However, it does not disclose output format, error behavior, or performance considerations, leaving some behavioral aspects unclear.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is two sentences plus a concise bullet list. The main purpose is front-loaded, and every element adds value without redundancy. It is efficiently structured for quick understanding.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given the tool's complexity (5 parameters, no output schema, no annotations), the description covers the key checks and introduces threshold parameters. It could be more complete by noting the return format or file path requirement, but overall it sufficiently informs the agent for typical use.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

The input schema has 0% description coverage, so the description must compensate. It explains long_duration_days and high_float_days defaults and meaning, but does not describe file_path, project_id, or project_short_name. Partial coverage adds value but leaves gaps.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the tool performs a DCMA-style schedule quality check on open/in-progress activities. It lists specific checks (missing predecessors, successors, long duration, high float, etc.), making the purpose precise and distinguishing it from sibling tools like get_critical_path or get_schedule_summary.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description provides context (DCMA-style check on open/in-progress activities) but does not explicitly state when to use this tool versus alternatives, nor does it offer exclusions or prerequisites. The list of checks implies appropriate scenarios, but lacks direct guidance.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

get_activity_detailA
Get full detail for a single activity by its task_code (case-insensitive).
Returns all scheduling fields plus enriched predecessors, successors,
and resource assignments with names and costs.
ParametersJSON Schema
NameRequiredDescriptionDefault
file_pathYes
task_codeYes

TDQS

A3.7/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

With no annotations, the description carries the burden. It mentions case-insensitivity and enriched return data, but does not disclose error behavior, permissions, or side effects.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Two concise sentences, front-loaded with key information, no redundant words.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a simple retrieval with 2 params and no output schema, the description is mostly complete. Minor gap: no explanation of what 'file_path' represents.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters2/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 0%, so the description must compensate. It adds meaning for 'task_code' (case-insensitive) but fails to describe 'file_path', leaving its purpose unclear.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the verb 'Get', the resource 'full detail for a single activity', and the lookup key 'task_code', and distinguishes from sibling tools by specifying the returned enriched data.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

It implies use when needing full detail for a single activity but lacks explicit guidance on when to use this over siblings like get_relationships or get_resource_assignments.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

get_calendarsB

List all calendar definitions in the XER file with hours-per-period data.

ParametersJSON Schema
NameRequiredDescriptionDefault
file_pathYes

TDQS

B3.1/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

With no annotations, the description carries the full burden. It implies a read-only listing operation but does not explicitly state that it does not modify data or require special permissions. The behavior is adequately described but not fully transparent.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is a single sentence of 12 words, efficiently conveying the core purpose without superfluous information. It is well-structured and front-loaded.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness2/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Without an output schema, the description should explain return values but only mentions 'hours-per-period data' without elaboration. It also fails to clarify the input parameter or expected output format, leaving the agent underinformed.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters1/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 0%. The description does not mention the sole parameter 'file_path' (type string, required), failing to add any meaning beyond the schema. The agent receives no guidance on how to use this parameter.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the verb 'List' and the resource 'calendar definitions' with a specific scope 'in the XER file' and additional data 'hours-per-period'. This effectively differentiates it from sibling tools like 'get_resources' or 'get_activities'.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description provides no guidance on when to use this tool versus alternatives. It does not mention prerequisites, exclusions, or context for selection among the many sibling get_* tools.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

get_critical_pathA
Find critical path activities (total float <= 0, incomplete only).
Results are sorted by early start date ascending.
Accepts either project_id (numeric) or project_short_name as a filter.
ParametersJSON Schema
NameRequiredDescriptionDefault
file_pathYes
project_idNo
project_short_nameNo

TDQS

A4.3/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

The description discloses key behaviors: only incomplete activities with total float <=0, sorted by early start ascending, and accepts either project_id or project_short_name. No annotations exist, so the description carries the full burden. It could include more about return format or error behavior.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Three sentences, each providing essential information: what the tool does, sorting, and accepted filters. No redundant or unnecessary text.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

The description covers filtering and sorting but lacks details on return structure (no output schema). It does not specify what fields are returned, which is a gap for a tool with no output schema. file_path is also not described.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

With 0% schema description coverage, the description adds significant meaning for two of three parameters: project_id and project_short_name are explained as filters with types (numeric vs short name). file_path is required but not explained, leaving some ambiguity.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the verb 'find' and the resource 'critical path activities' with specific criteria (total float <= 0, incomplete only). It distinguishes from sibling tools like get_project_activities which likely fetches all activities.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description implies when to use this tool (for critical path analysis) and mentions the filtering options. However, it does not explicitly state when not to use it or alternative tools, though the sibling context provides some differentiation.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

get_earned_valueC
Calculate Earned Value Management (EVM) metrics per project:
PV (Planned Value), EV (Earned Value), AC (Actual Cost),
CV (Cost Variance), SV (Schedule Variance), CPI, SPI, EAC.
ParametersJSON Schema
NameRequiredDescriptionDefault
file_pathYes
project_idNo
project_short_nameNo

TDQS

C2.6/5.0
Behavior2/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

No annotations are provided, and the description does not disclose behavioral traits such as side effects, permissions required, or whether the operation is read-only. It focuses solely on the calculation without addressing behavior beyond the basic operation.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is a single sentence that efficiently lists the metrics, front-loading the purpose with no extraneous information. It is concise but could benefit from slightly more structure.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness2/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given no output schema, no parameter explanations, and moderate complexity (EVM metrics with three parameters), the description is incomplete. It lacks details on output format, metric interpretation, and parameter usage, making it insufficient for informed tool invocation.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters1/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 0%, and the description does not explain any of the three parameters (file_path, project_id, project_short_name). The agent must infer their meaning from names alone, which is insufficient for complex inputs.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states it calculates EVM metrics per project and lists specific metrics (PV, EV, AC, etc.), providing a clear purpose. However, it does not explicitly distinguish itself from sibling tools like analyze_resource_utilization, though the metric list implies a distinct function.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description provides no guidance on when to use this tool versus alternatives, no prerequisites, no context on when not to use it. It simply states what it does without any usage directives.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

get_project_activitiesA
Get activities from an XER file.

Filter options:
- project_id: numeric P6 project ID
- project_short_name: project short name string
- status: TK_NotStart | TK_Active | TK_Complete
- task_type: TT_Task | TT_Mile | TT_FinMile | TT_WBS
- limit: max rows returned (default 100)
ParametersJSON Schema
NameRequiredDescriptionDefault
file_pathYes
project_idNo
project_short_nameNo
statusNo
task_typeNo
limitNo

TDQS

A3.5/5.0
Behavior2/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

No annotations are provided, and the description does not disclose behavioral traits such as whether the operation is read-only, or if any prior parsing is required. The word 'get' implies a read, but this is not explicit.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is concise (two sentences plus bullet list), front-loaded with the action, and every sentence adds value. No fluff.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Input parameters are well covered, but there is no output schema or description of what the returned activities contain (e.g., fields). For a list tool, the output format is essential context missing here.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 0%, so the description must explain parameters. It adds value by describing each filter parameter's type and possible values (e.g., status: 'TK_NotStart | TK_Active | TK_Complete'), and notes default limit. This compensates for the sparse schema.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states 'Get activities from an XER file' and lists specific filter options, distinguishing it from sibling tools like get_activity_detail which likely retrieves a single activity. The verb 'get' and resource 'activities' are explicit.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

No guidance on when to use this tool versus alternatives like get_activity_detail or get_schedule_summary. The description lists filters but does not specify contexts where this tool is preferred or when other tools should be used.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

get_relationshipsA
Get activity predecessor/successor relationships, enriched with task codes.
If task_code is supplied, returns only relationships where that activity
appears as the successor or as the predecessor.
ParametersJSON Schema
NameRequiredDescriptionDefault
file_pathYes
task_codeNo
limitNo

TDQS

A3.5/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

No annotations are provided, so the description must cover behavioral traits. It mentions enrichment and filtering, but lacks details on side effects, permissions, pagination, or ordering. It is adequate but not comprehensive.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is concise with two sentences, front-loaded with the main action, and contains no redundant information.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness2/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given the lack of output schema and 3 parameters with incomplete description, the description does not fully equip an AI agent. Missing details on return format, file_path (likely required path to a file), and limit (pagination).

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters2/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 0%, and the description only adds meaning for the task_code parameter, explaining its filter effect. The file_path and limit parameters are not described, leaving their purpose unclear.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the tool retrieves activity predecessor/successor relationships with enrichment of task codes. It distinguishes from sibling tools like get_activity_detail or get_project_activities, which focus on other aspects.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description provides a conditional usage for task_code filtering, but does not explicitly guide when to use this tool versus alternatives or when not to use it. The context is implied but not fully elaborated.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

get_resource_assignmentsB
Get resource-activity assignments, enriched with resource and activity names.
- rsrc_name: partial match on resource name (case-insensitive)
- task_code: exact match on activity task code
ParametersJSON Schema
NameRequiredDescriptionDefault
file_pathYes
rsrc_nameNo
task_codeNo
limitNo

TDQS

B3.2/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Describes filtering behavior (partial vs exact match) and enrichment, but omits other behavioral traits like required file_path, default limit, or output format. With no annotations, more disclosure needed.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Concise with bullet points for parameters; no redundant information. Could be slightly more compact but overall well-structured.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Covers essential filtering but lacks details on output, pagination, and error handling. With sibling tools providing alternative data, more context on when to use this specific tool would improve completeness.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Explains two parameters (rsrc_name, task_code) with matching details, compensating for 0% schema coverage. However, file_path and limit remain unexplained, leaving gaps.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the tool retrieves resource-activity assignments with enriched names. It distinguishes from siblings like get_resources and get_project_activities by focusing on assignments.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

No guidance on when to use this tool versus alternatives such as get_relationships or analyze_resource_utilization. Lacks context for selection.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

get_resourcesA
List all resources in an XER file.
Optionally filter by type: RT_Labor | RT_Mat | RT_Equip
ParametersJSON Schema
NameRequiredDescriptionDefault
file_pathYes
rsrc_typeNo

TDQS

A3.8/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

No annotations are provided, so the description carries the burden. It discloses the read-like behavior (listing) and filtering, but doesn't mention if it's read-only, permissions needed, or response format. Adequate but not detailed.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Two short sentences, front-loaded with main action and clear structure. No wasted words.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a simple list tool with 2 parameters and no output schema, the description is mostly complete. It could mention that it returns resource objects, but still adequate.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 0%, but the description adds meaning to rsrc_type by enumerating options (RT_Labor, RT_Mat, RT_Equip). However, file_path remains unexplained beyond its name. Partial compensation.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the verb 'List' and resource 'all resources in an XER file', with optional filtering by type. It distinguishes from siblings like get_resource_assignments and analyze_resource_utilization.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

No explicit guidance on when to use this tool vs alternatives. No when-not-to-use or prerequisites provided. The description implies its use for listing resources but lacks contextual direction.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

get_schedule_summaryC
Comprehensive schedule summary: activity counts by status, critical activity count,
milestone count, resource/calendar/WBS/relationship totals, and date range.
ParametersJSON Schema
NameRequiredDescriptionDefault
file_pathYes
project_idNo
project_short_nameNo

TDQS

C2.6/5.0
Behavior2/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

No annotations provided, so the description must carry the burden. It does not disclose whether the tool is read-only, requires specific permissions, or has performance implications. It only lists output contents, missing behavioral traits.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is a single, concise sentence that front-loads the purpose and lists key output components. It is efficient and to the point, though it could be slightly more structured by separating input vs output hints.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness2/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given no output schema and three parameters, the description lacks parameter explanations and behavioral details. It adequately describes the output content but fails to provide enough context for an agent to correctly invoke the tool without additional assumptions.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters1/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 0%, meaning parameters are undocumented in the schema. The description does not mention the three parameters (file_path, project_id, project_short_name) at all, so it adds no meaning beyond the schema's type specifications.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states it provides a comprehensive schedule summary with specific counts and date range. It uses specific terms like activity counts by status, critical activity count, etc., which distinguishes it from more focused sibling tools like get_activity_detail or get_critical_path. However, it does not explicitly differentiate itself from all siblings.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

No guidance on when to use this tool versus alternatives like get_activity_detail or get_critical_path. The description implies it is for a broad overview, but does not specify prerequisites or context.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

get_wbsC

Get the Work Breakdown Structure (WBS) hierarchy, optionally filtered by project.

ParametersJSON Schema
NameRequiredDescriptionDefault
file_pathYes
project_idNo
project_short_nameNo

TDQS

C2.9/5.0
Behavior2/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

No annotations exist, and the description does not disclose behavioral traits such as authentication needs, rate limits, error responses, or output format. Minimal information beyond the basic action.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is a single, clear sentence of 19 words with no redundancy. It front-loads the key action and resource.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness2/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

With no output schema, no annotations, and 0% schema coverage, the description is insufficient. It omits return structure, error handling, and parameter details, leaving significant gaps for an agent to use the tool correctly.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters2/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 0%, and the description mentions 'optionally filtered by project' but does not explain the meaning or format of parameters like file_path or project_short_name. It adds little beyond the schema structure.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the tool retrieves the Work Breakdown Structure hierarchy with optional project filtering. It is specific and distinguishes from sibling tools like get_activity_detail.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

No guidance is provided on when to use this tool versus alternatives like get_project_activities. There are no conditions, restrictions, or prerequisites mentioned.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

parse_xer_fileA
Parse a Primavera P6 XER file and return basic project information:
project list with status breakdowns, total activities, resources, calendars,
WBS elements, and relationships.
ParametersJSON Schema
NameRequiredDescriptionDefault
file_pathYes

TDQS

A3.5/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

No annotations are provided, so the description carries full burden. It indicates a read-only parse operation returning basic data, but lacks details on side effects, performance implications for large files, or error handling. The list of returned items gives some transparency.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is a single sentence that efficiently conveys the action and output, with no redundant words. However, it could be improved by front-loading the action more explicitly.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given one parameter and no output schema, the description provides a useful list of returned data types but lacks detail on data structure or that parsing is a prerequisite for sibling query tools. The agent may need additional context to fully utilize the output.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters2/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

The single parameter `file_path` has 0% schema description coverage, and the description adds no semantics beyond its name. It does not clarify path format, required file existence, or supported storage locations, leaving the agent to infer.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly specifies the action: parse a Primavera P6 XER file. It lists the specific information returned (project list, status breakdowns, activities, resources, etc.), distinguishing it from sibling tools that query already parsed data.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description implies this tool is used as a first step to load project data, but it does not explicitly state when to use it versus alternatives (e.g., when data is not yet parsed) or provide any exclusion conditions.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

Tool Schema Changelog

Recent tool additions, removals, and schema changes observed during successful MCP inspections.

  1. 13 tool updatesv0.1.3
    • First observedanalyze_resource_utilization
    • First observedcheck_schedule_quality
    • First observedget_activity_detail
    • First observedget_calendars
    • First observedget_critical_path
    • First observedget_earned_value
    • First observedget_project_activities
    • First observedget_relationships
    • First observedget_resource_assignments
    • First observedget_resources
    • First observedget_schedule_summary
    • First observedget_wbs
    • First observedparse_xer_file

TDQS

A3.7/5.0

Scored across 13 tools

Disambiguation5/5

Each tool targets a distinct aspect of Primavera P6 XER analysis: resource utilization, schedule quality, activity details, calendars, critical path, earned value, filters, relationships, assignments, resources, summary, WBS, and initial parsing. No overlapping purposes.

Naming Consistency5/5

All tools follow a consistent verb_noun pattern in snake_case (e.g., analyze_resource_utilization, check_schedule_quality, get_activity_detail). The naming is predictable and clear.

Tool Count5/5

13 tools is well-scoped for a specialized domain like P6 XER file analysis. Each tool earns its place, covering parsing, activities, resources, schedules, EVM, and WBS without being excessive.

Completeness5/5

The tool surface covers the full analysis lifecycle: initial file parsing, detailed views of activities/resources/schedules, critical path, EVM, schedule quality, and summary. No obvious gaps for an analysis-oriented tool.

Maintenance

ActivityInactive
ResponsivenessNo issues

Related MCP Connectors

Related MCP Servers

  • A
    license
    C
    quality
    C
    maintenance
    An MCP server for processing XLIFF and TMX translation files, enabling parsing, validation, and manipulation of translation units in localization workflows.
    9
    2
    MIT
  • A
    license
    Not graded
    quality
    C
    maintenance
    MCP server that enables LLMs to read and analyze Microsoft Project schedules, including critical path, resources, and advanced construction planning layers (AWP and LPS) for work packages and Lean planning.
    MIT
  • A
    license
    A
    quality
    B
    maintenance
    Read-only MCP server for ProjectLibre .pod files that enables finding project files, summarizing Gantt charts, inspecting tasks, and analyzing schedules without opening ProjectLibre.
    4
    MIT