JSON:API v1.0 · HighBond · PRD Harmonization

The Diligent Projects API,
composed by an agent.

42+ tools across 10 categories. Introspect project schemas, sync subjects across project types, build risk-control matrices, detect cross-project duplicates, and orchestrate the full audit lifecycle — all from one agent conversation, through one protocol.

42+
MCP Tools
Every API endpoint wrapped
10
Categories
Self-discoverable via meta layer
30
Knowledge Files
4,500+ lines of documentation
34
User Journeys
Mapped to every tool
$
curl -fsSL https://mcp-projects.riskapture.ai/install.sh | bash
Installs to ~/.local/share/diligent-projects-mcp Node.js 20+, no sudo Re-run to update
Architecture

Three layers, one conversation.

The server is designed so an LLM can navigate it without memorizing tool names. A meta layer describes itself; a harmonization layer handles the complex PRD workflows; a primitive layer exposes every API endpoint.

Meta & control plane

Health check, session metrics, capability discovery, schema introspection, auto-pagination, reference cache warmup. The agent learns what it has before it guesses.

Harmonization layer

PRD-defined tools: schema detection, config discovery, subject sync, procedure sync, cross-project deduplication. The intelligence that makes Projects data canonical.

Primitive layer

Raw CRUD for projects, objectives, risks, controls, issues, frameworks, walkthroughs, tests, planning files, sign-offs, users, and platform config.

Rate-limited client

Token-bucket rate limiter (600 req/hr, 6 req/sec), exponential backoff retry, structured error classification, and per-call observability metrics.

Composite tools

Risk-control matrix, issue dashboard, project summary, control assessment status — multi-call composites that build complete views in one tool invocation.

Name resolution

Every tool accepts human-readable names or numeric IDs. Cached resolution with 5-minute TTL. Ambiguous matches return a disambiguation table.

What you can do

Capabilities overview.

Project Lifecycle

Create projects (Workplan or Internal Control workflow), set up planning, manage statuses, conclude with ratings, archive. 20,000 project limit per org.

Frameworks

Inspect and build Risk-Control Matrix templates. Frameworks are "abstract projects" — same schema, no instantiation data. Import sections into projects with linked sync.

Fieldwork

List and inspect objectives, risks, controls. View walkthroughs (design effectiveness) and tests (operating effectiveness). Track control performance schedules.

Issue Management

List issues by severity and project, view remediation details, get overdue dashboards. Severity breakdown and aging analysis in one composite call.

Schema Harmonization

PRD-defined: introspect all project type schemas, detect template vs ad hoc usage, sync all subjects, find duplicates with Levenshtein scoring.

Platform Admin

Users, groups, roles, workflows, organizational entities. Generic API escape hatch for uncovered endpoints (DELETE blocked).

Tool Reference

All tools.

Meta & Control Plane (6)
ToolDescription
projects_health_checkAPI connectivity, response time, session metrics
projects_get_session_metricsCall counts, errors, retries, average duration
projects_reset_session_metricsReset counters for a new job
projects_list_capabilitiesTool inventory by category with descriptions
projects_warmup_reference_cachePre-fetch project types & workflows
projects_query_allAuto-paginate any JSON:API resource collection
Projects (6)
ToolDescription
projects_list_projectsList all projects with status filter
projects_get_projectFull project details — accepts name or ID
projects_create_projectCreate a new project MUTATES
projects_update_projectUpdate project fields (name, status, opinion, dates, tags) MUTATES
projects_list_project_typesAvailable project types with workflow info
projects_get_project_typeProject type detail with terminology config
Objectives (3)
ToolDescription
projects_list_objectivesObjectives (sections) within a project
projects_get_objectiveFull objective detail with related entity IDs
projects_get_objective_detailObjective + all nested risks, controls, narratives
Risks (3)
ToolDescription
projects_list_risksAll risks, optionally filtered by objective
projects_get_riskFull risk detail with custom attributes & factors
projects_get_risk_heat_mapImpact x Likelihood matrix across project or all
Controls & Testing (8)
ToolDescription
projects_list_controlsAll controls/procedures, optionally by objective
projects_get_controlFull control detail with UI link
projects_list_walkthroughsDesign effectiveness assessments
projects_get_walkthroughWalkthrough detail
projects_list_control_testsOperating effectiveness tests (filter by round)
projects_get_control_testControl test detail
projects_list_questionnaire_responsesControl performance questionnaire responses
projects_get_control_assessment_statusComposite: control assessment status across a project
Frameworks & RCM (5)
ToolDescription
projects_list_frameworksAll framework templates
projects_get_frameworkFramework detail — accepts name or ID
projects_list_framework_objectivesObjectives within a framework
projects_list_framework_planning_filesPlanning files in a framework
projects_get_risk_control_matrixComposite: full Objective-Risk-Control denormalized matrix
Issues (3)
ToolDescription
projects_list_issuesAll issues with severity/project/type filter
projects_get_issueFull issue with description, recommendation, remediation
projects_get_issue_dashboardComposite: severity breakdown + overdue + status pipeline
Planning & Sign-offs (4)
ToolDescription
projects_get_planningProject planning info (background, purpose, scope)
projects_list_planning_filesPlanning files for a project
projects_get_planning_filePlanning file detail
projects_list_signoffsWorkpaper sign-off records
Platform (7)
ToolDescription
projects_list_usersAll platform users
projects_list_groupsUser groups
projects_list_rolesPlatform roles
projects_list_workflowsConfigured workflows
projects_list_entitiesOrganizational entities
projects_list_entity_categoriesEntity categories
projects_api_rawGeneric JSON:API call — DELETE blocked ESCAPE HATCH
Harmonization — PRD (6)
ToolDescription
projects_schema_detectionIntrospect all project type schemas, attribute defs, framework templates
projects_config_discoveryTemplate vs ad hoc analysis, schema consistency scoring
projects_subject_syncFull/delta sync of all subjects across project types
projects_procedure_syncSync procedures + assessment results (walkthroughs, tests)
projects_find_duplicate_subjectsCross-project deduplication with Levenshtein scoring
projects_get_project_summaryComposite: full project dashboard with counts and issue breakdown
Configuration

Environment variables.

VariableRequiredDescription
PROJECTS_BASE_URLYesAPI base URL (e.g. https://apis-us.diligentoneplatform.com)
PROJECTS_API_TOKENYesBearer token from Admin Hub > API Access Tokens
PROJECTS_ORG_IDYesOrganisation ID (numeric)
PROJECTS_LOG_FILENoPath for JSONL request log

Regional base URLs: US, Canada, Europe, Asia, Australia, Africa, Japan, South America

Constraints

Hard rules.

No DELETE
Soft-delete is destructive and irreversible via API. DELETE is hard-blocked in the client.
Rate Limits
600 req/hour, 6 req/sec. Token-bucket rate limiter enforced client-side with exponential backoff.
No Server Filter
Server-side filtering is NOT supported. All filtering is done client-side after fetching.
JSON:API v1.0
All requests use application/vnd.api+json content type. Cursor-based pagination via links.next.
Include Works
JSON:API sideloading is supported via ?include=resource_type. Returns data in included[].
RCM is 2D
The risk-control matrix is a many-to-many between exactly 2 domain objects. The relationship type is immutable per project type.
Quick start

Getting started.

1. Install via the one-liner above, or clone from GitHub

2. Set your environment variables (API token from Admin Hub > API Access Tokens)

3. Restart Claude Code: /mcp reset diligent-projects

4. Start with projects_health_check to verify connectivity

5. Run projects_list_capabilities to see all available tools

6. Use projects_warmup_reference_cache before bulk operations