HAOps MCP Server
Server Configuration
Describes the environment variables required to run the server.
| Name | Required | Description | Default |
|---|---|---|---|
| HAOPS_API_KEY | Yes | API key for authenticating with the HAOps API | |
| HAOPS_API_URL | Yes | The URL of the HAOps API server (e.g., http://localhost:3000) |
Instructions
Guidance the server publishes about itself, which clients place ahead of the tool catalog so the model reads it before choosing anything.
This server publishes no instructions, or was last inspected before Glama recorded them.
Capabilities
Features and capabilities supported by this server
Protocol revision2025-11-25
| Capability | Details |
|---|---|
| tools | {} |
| resources | {} |
Tools
Functions exposed to the LLM to take actions
| Name | Description |
|---|---|
| haops_list_projectsA | List all projects in HAOps |
| haops_create_moduleB | Create a new module in a HAOps project |
| haops_update_moduleB | Update an existing module in a HAOps project |
| haops_create_featureB | Create a new feature in a HAOps module |
| haops_update_featureC | Update an existing feature in a HAOps module |
| haops_create_issueC | Create a new issue in a HAOps feature |
| haops_delete_moduleB | Delete a module from a HAOps project. If the module has child features, requires confirm=true to cascade delete. |
| haops_delete_featureA | Delete a feature from a HAOps module. If the feature has child issues, requires confirm=true to cascade delete. |
| haops_delete_issueA | Delete an issue from a HAOps feature. No confirmation needed (issues are leaf nodes with no children). |
| haops_update_issueB | Update an existing issue in a HAOps feature |
| haops_bulk_update_issuesA | Update multiple issues at once. Useful for batch status changes, priority updates, or reassignments. |
| haops_create_discussionA | Create a discussion thread in a HAOps project. Two modes: (1) Entity-linked — provide discussableType + discussableId to link to a Module/Feature/Issue (no channelId needed). (2) Channel-based — provide channelId (use haops_list_channels to find it). Can combine both. At least one of channelId or discussableType+discussableId is required. |
| haops_list_discussionsA | List discussions in a HAOps project. Filter by entity (Module/Feature/Issue) to find entity-linked discussions, or by channel/status. Essential for the Entity Discussion Protocol — use this to find the discussion linked to a work item before posting. |
| haops_list_channelsA | List all channels in a HAOps project. Use this to discover channel UUIDs needed for creating channel-based discussions via haops_create_discussion. |
| haops_post_messageA | Post a message to a discussion thread in a HAOps project. Markdown is recommended for agent messages — it will be converted to HTML server-side. |
| haops_send_dmB | Send a direct message to a user in a HAOps project. Supports markdown formatting — content will be converted to HTML server-side. |
| haops_get_discussionB | Get detailed information about a specific discussion thread, including metadata and entity linkage. |
| haops_get_discussion_messagesB | Retrieve messages from a discussion thread with pagination. Essential for reading conversation context before responding. |
| haops_list_dm_conversationsA | List all direct message conversations in a project with unread counts and last message previews. |
| haops_get_dm_historyA | Retrieve direct message history with a specific user. Use this to read DM context before replying. |
| haops_update_discussionA | Update discussion properties (title, status, priority, assignment, locking, pinning). Use this to resolve/close discussions or change metadata. |
| haops_mark_dm_readB | Mark all direct messages from a specific user as read. |
| haops_delete_discussionA | Delete a discussion thread. This is permanent and will also delete all messages in the thread. Use with caution. |
| haops_edit_messageA | Edit an existing message in a discussion thread. Only the message author can edit. Useful for correcting typos or updating information. |
| haops_delete_messageA | Delete a message from a discussion thread. Only the message author can delete. This is permanent. |
| haops_list_membersB | List all members of a HAOps project with their roles and activity stats. |
| haops_add_memberB | Add a user as a member to a HAOps project. |
| haops_update_member_roleA | Update a project member's role. Cannot change the owner role. |
| haops_get_activityB | Get activity log for a specific entity (Module, Feature, or Issue) in a HAOps project. Shows who changed what and when. |
| haops_get_audit_logA | Get system-wide audit log (admin only). Shows all changes across the platform with filters. |
| haops_claim_issueA | Claim an issue for work. Checks availability and marks as in-progress. Use before starting implementation. |
| haops_claim_featureA | Claim a feature for work. Checks availability and marks as in-progress. Use before starting implementation on a feature. |
| haops_claim_moduleA | Claim a module for work. Checks availability and marks as in-progress. Use before starting implementation on a module. |
| haops_work_entity_health_checkA | Run health checks on work entities to detect stale, inconsistent, or problematic states. Returns findings with severity and recommendations. |
| haops_list_help_sectionsA | List all help center sections with article counts. Returns published and unpublished sections. |
| haops_list_help_articlesB | List help articles, optionally filtered by section slug. |
| haops_create_help_articleB | Create a new help article in a section. |
| haops_get_help_articleA | Get a help article by slug, including full HTML content. Use this before haops_update_help_article when you need to append to existing content (update is wholesale replace). |
| haops_update_help_articleB | Update an existing help article by slug. |
| haops_list_doc_artifactsA | List documentation artifacts for a project. Each artifact represents a type of documentation (architecture, developer, deployment, api, user_guide, changelog, adr, plans). |
| haops_create_doc_artifactA | Create a new documentation artifact for a project. One artifact per type per project. |
| haops_update_doc_artifactB | Update a documentation artifact (title, description, status, version). |
| haops_create_doc_sectionA | Create a new section within a documentation artifact. IMPORTANT: Uses |
| haops_update_doc_sectionA | Update a documentation section content, title, slug, or source hint. IMPORTANT: Uses |
| haops_get_doc_sectionB | Get a specific documentation section content and metadata. |
| haops_export_doc_markdownA | Export a documentation artifact as Markdown text. Returns the full Markdown content as a string (not a file download). Useful for syncing documentation to a git repository. |
| haops_generate_onboardingA | Generate a Developer Onboarding Kit (ZIP) for a new developer joining a project. Creates pre-configured agent workspace with memory files, agent definitions, and project configuration. The ZIP is saved to a local temp file and the file path is returned. |
| haops_read_memoryA | Read agent memory for a project, module, or feature. mode="eager" (default): Returns baseText + full log entry bodies. Full project context in one call. mode="lazy" (ADR-027): For entityType=project — returns a compact INDEX envelope: • baseText (already thin) • Architecture doc tree (headers only: title [artifactSlug/sectionSlug]) • ADR index (headers only) • Active work — in-progress modules + features • Log headers only (timestamp · tag · author) — NO bodies Agent then fetches detail on demand via haops_get_doc_section / haops_read_memory(full:true) / haops_rag_query. For entityType=module/feature in lazy mode: falls back to eager (entity baseText is already thin). Use full=true (eager mode only) to include integrated (historical) log entries. Lazy default can be enabled via HAOPS_MEMORY_LAZY_DEFAULT=true env var on the MCP server. |
| haops_append_memoryA | Append a tagged log entry to entity agent memory. Author is auto-populated from the API key. Tag must be allowed for the API key's agent role (e.g. dev can use: context, decision, progress, issue; qa: review, issue; architect/admin: all tags). |
| haops_consolidate_memoryA | Consolidate entity agent memory: replace baseText with updated summary and mark log entries as integrated. Admin and architect roles ONLY. Use this to keep baseText concise by integrating accumulated log entries. |
| haops_read_protocolA | Read the work protocol for a specific agent role in a project. Protocols define HOW agents should work (scope, workflow, handoff, etc.). OUTPUT SHAPES (v2.6 — F4 composed protocols):
• Legacy project (templateId IS NULL) — always returns the raw monolithic shape regardless of |
| haops_update_protocolA | Update (create new version of) the work protocol for a specific agent role in a project. Creates a new version and marks the previous as historical. Architect and admin roles ONLY. Partial-body support: Provide ONLY the fields you want to change. Server carries forward unchanged fields.
• Common usage: pass only F3 composed-protocol fields (ENABLE_COMPOSED_PROTOCOLS must be ON): • templateId — UUID of a RoleTemplate to associate, or null to detach. Omit to carry forward current value. • skillsConfig — override which skills are active and inject custom content. Omit to carry forward. Set to null to clear. |
| haops_list_protocol_versionsA | List all versions of a work protocol for a specific agent role. Returns version numbers, timestamps, change summaries, and who updated each version. |
| haops_get_protocol_healthA | Returns per-role composed-protocol health: missing skill UUIDs, deprecated references, skill pack health, snapshot metadata. Surfaces drift programmatically (same data as the Project Settings → Protocol Health panel in HAOps Desktop UI). Requires ENABLE_COMPOSED_PROTOCOLS=true on the server. |
| haops_list_skillsA | List agent skills (system-wide + optionally project-scoped). Skills are reusable, role-tagged knowledge units (e.g. "out-of-scope-findings", "three-layer-boot") that compose into agent protocols. Filter by scope, category, role, project, or free-text search. Deprecated skills are excluded by default. |
| haops_read_skillA | Read a single skill by its kebab-case name. Returns full markdown content + metadata (category, applicableRoles, version, ID, isDeprecated). Use this after haops_list_skills — or after a haops_read_protocol(mode="lazy") response's skillRefs[] manifest — to fetch the actual instructions on demand. |
| haops_create_skillA | Create a new agent skill (system or project-scoped). Inserts version=1 with isCurrent=true. Admin-only on the server, gated by ENABLE_COMPOSED_PROTOCOLS. Returns the new skill row on success; 409 if a skill with the same name already exists in the target scope (use haops_update_skill to publish a new version instead). |
| haops_update_skillA | Publish a new version of an existing skill (PUT /api/skills/[name]). Server bumps version in a single transaction. A no-op update (no field differs from current) returns the current row WITHOUT a version bump (mirrors prompt PATCH semantics). At least one mutable field must be supplied. Admin-only, gated by ENABLE_COMPOSED_PROTOCOLS. |
| haops_deprecate_skillA | Soft-delete + deprecate a skill (DELETE /api/skills/[name]). Cascades the soft-delete across ALL versions (current + historical) and flips isDeprecated=true on the current row. History remains visible via /api/skills/[name]/history for audit context. Admin-only, gated by ENABLE_COMPOSED_PROTOCOLS. Returns {message, versionCount}. |
| haops_get_skill_historyA | Returns the full version history of a named skill (GET /api/skills/[name]/history). Each entry contains the version number, publication timestamp, author, lifecycle state, and full content at that point in time. When diff=true the server computes unified diffs between consecutive versions and includes a Administrative note: soft-deleted (deprecated) skills still have their history accessible via this endpoint — paranoid=false on the server join so full audit lineage is preserved. |
| haops_get_role_template_historyA | Returns the full version history of a named role template (GET /api/role-templates/[name]/history). Role templates are system-wide (no scope/projectSlug). Each entry contains version, publication timestamp, author, lifecycle state, and the full Use to audit template content over time, recover from a bad publish, or inspect changes before bumping a template with |
| haops_bulk_publish_skillsA | Atomically publish multiple skills in a single DB transaction (POST /api/skills/bulk-publish). All version bumps happen in one round-trip; when cascade=true, consumer re-wiring (role templates, skill packs, project protocols) runs ONCE at the end — significantly cheaper than N sequential haops_update_skill calls during mass refactors. Partial-failure semantics: if ANY entry fails validation (unknown skill name, bad scope+projectSlug combo, duplicate entry), the server rolls back the ENTIRE transaction and returns a 400 with a per-entry error list. No skills are published unless ALL entries are valid. Check Admin-only, requires ENABLE_COMPOSED_PROTOCOLS=true. Returns 404 when the feature flag is off (the route looks absent by design). WARNING: cascade=true re-wires ALL consumers of EVERY updated skill in one transaction. Use haops_preview_skill_cascade on high-impact skills before running to estimate blast radius. |
| haops_create_project_skillA | Create a PROJECT-SCOPED skill (POST /api/projects/[slug]/skills). Project-scoped skills are visible only to that project's protocol resolver — they cannot be referenced by system role templates or other projects' protocols. For skills you want reusable across all projects, use haops_create_skill with scope="system" instead. Admin-only, requires ENABLE_COMPOSED_PROTOCOLS=true. Returns 409 if a non-deleted project skill with the same name already exists in this project — use haops_update_skill(scope="project", projectSlug=...) to publish a new version instead. Returns 404 when the feature flag is off. Response includes id, scope="project", projectId and version=1. |
| haops_get_protocol_spawn_linesA | Returns the per-role spawn-line text (GET /api/projects/[slug]/protocol/spawn-lines). Spawn lines are short boot-ritual strings injected at agent session start when composed protocols are active. Omit Read-only. Requires ENABLE_COMPOSED_PROTOCOLS=true. Returns 404 when the feature flag is off (the route looks absent by design) — surface this as "Composed protocols feature is disabled" to the user. |
| haops_preview_project_protocolA | Dry-run the composed-protocol resolver for a project role — returns the assembled manifest as if PUT had been applied, WITHOUT persisting. Use BEFORE haops_update_protocol to verify that the new templateId / skillsConfig combo resolves correctly and has no warnings. When called with no optional params, previews the current protocol settings (useful for a sanity-check without triggering a version bump). The response shape mirrors haops_read_protocol (mode, coreContent/body, skillRefs, warnings). The server adds Requires ENABLE_COMPOSED_PROTOCOLS=true on the server. Returns 404 when the feature flag is off (the route looks absent, by design) — surface this as "Composed protocols feature is disabled" to the user. |
| haops_preview_skill_cascadeA | Preview which consumers (role templates, skill packs, project protocols) would need re-wiring if the named skill is bumped via PUT. Read-only — does not mutate. Use BEFORE calling |
| haops_preview_role_template_cascadeA | Preview which project protocols would need re-wiring if the named role template is bumped via PUT. Read-only — does not mutate. Use BEFORE calling |
| haops_list_role_templatesA | List agent role templates. A role template bundles a core |
| haops_read_role_templateA | Read a single role template by its kebab-case name. Returns the current version with |
| haops_create_role_templateA | Create a new agent role template (admin-only, requires composed-protocols feature flag). Templates are system-wide (no project scope) and always start at version=1, isCurrent=true, isSystem=false. |
| haops_update_role_templateA | Publish a new version of an existing role template (admin-only, requires composed-protocols feature flag). The server flips the current row to isCurrent=false and inserts a new row at version+1, transactionally. Only supply fields you want to change — a no-op call (no diff) returns the current row unchanged with version untouched. |
| haops_deprecate_role_templateA | Soft-delete a role template, cascading across ALL versions (admin-only, requires composed-protocols feature flag). System templates (isSystem=true) cannot be deleted and return 403 — to "deprecate" a system template, publish a new version via haops_update_role_template or alter the seeder. Soft-deleted rows remain visible in the history endpoint for audit context. |
| haops_list_skill_packsA | List skill packs — curated bundles of agent skills (e.g. helpdesk-pack, security-pack, mobile-pack) that owners adopt at project onboarding. Each pack groups related skill IDs under a category; the onboarding wizard pre-enables them in one click. System packs are seeded and cannot be deleted. Read-only on the MCP surface; mutations go through the web admin. |
| haops_create_skill_packA | Create a new skill pack (admin only, requires ENABLE_COMPOSED_PROTOCOLS=true on the server — returns 404 when the flag is off, by design). Body fields mirror POST /api/skill-packs: kebab-case |
| haops_update_skill_packA | Update an existing skill pack in place — no version bump (packs are unversioned; audit log captures the diff). Admin only, requires ENABLE_COMPOSED_PROTOCOLS=true. |
| haops_deprecate_skill_packA | Soft-delete (deprecate) a skill pack — paranoid destroy on a single row (packs are unversioned, no cascade). Admin only, requires ENABLE_COMPOSED_PROTOCOLS=true. System packs (isSystem=true) cannot be deleted — the server returns 403; to "deprecate" a system pack, update its skillIds to empty via haops_update_skill_pack instead, or remove the seeder entry in code. Returns the server confirmation message. |
| haops_transition_skillA | Transition a skill through its lifecycle (propose / publish / deprecate). Hits POST /api/skills/[name]/[action]. The server enforces the allowed-from-here state machine — on a disallowed transition you get a 409 with WARNING: The parameter is named |
| haops_transition_role_templateA | Transition a role template through its lifecycle (propose / publish / deprecate). Hits POST /api/role-templates/[name]/[action]. Role templates are system-wide — no scope axis. Server enforces the allowed-from-here state machine and returns 409 with WARNING: The parameter is named |
| haops_transition_skill_packA | Transition a skill pack through its lifecycle (propose / publish / deprecate). Hits POST /api/skill-packs/[name]/[action]. Packs are unversioned and system-wide. Server enforces the allowed-from-here state machine and returns 409 with WARNING: The parameter is named |
| haops_report_test_runA | Report test results to HAOps. Creates a TestRun with individual TestResult records. Used by agents to manually report results (Jest/Playwright reporters do this automatically). |
| haops_get_test_healthB | Get aggregated test health summary for a project or specific entity. Returns pass rates, trend, recent failures, and coverage data. |
| haops_list_testsC | List tests in a project with optional filters. Returns test records with metadata. |
| haops_list_test_runsA | List recent test runs for a project. Returns run summaries with pass/fail counts. |
| haops_link_tests_to_entityB | Link tests to a module, feature, or issue by test IDs or file path pattern. Sets testableType and testableId on matching tests. |
| haops_list_test_suitesC | List test suites for a project. |
| haops_export_test_suiteA | Export a test suite as a JSON bundle for cross-project sharing. Includes suite config and all test definitions. |
| haops_import_test_suiteB | Import a test suite from a JSON bundle into a project. Creates new suite and test records with fresh UUIDs. |
| haops_git_list_filesA | List files and directories in a project's Git repository at a given path. Returns directory entries with type (file/dir), name, and SHA. Supports multi-repo projects via repositoryName. |
| haops_git_read_fileA | Read file content from a project's Git repository. Returns text content for text files, or a "binary file" message for binary files. Supports multi-repo projects via repositoryName. |
| haops_git_commit_logA | Get recent commit history from a project's Git repository. Returns commits with SHA, author, date, and message. Supports multi-repo projects via repositoryName. |
| haops_git_get_remote_urlA | Get SSH remote URL and setup instructions for pushing to HAOps Git. Returns the SSH URL, default branch, and copy-pasteable setup commands. Supports multi-repo projects via repositoryName. |
| haops_manage_ssh_keysA | Manage SSH keys for HAOps Git access (list, add, or revoke). Agents can use this to self-service their SSH keys for git push access. |
| haops_create_merge_requestA | Create a merge request in a HAOps Git repository. Auto-detects conflicts and snapshots commit SHAs. Returns the created MR with status, conflict info, and diff stats. |
| haops_get_merge_requestA | Get merge request detail including diff stats, reviews with verdicts, conflict status, and branch info. Use this to review an MR before approving or merging. |
| haops_list_merge_requestsA | List merge requests for a project with optional filters. Returns MR title, status, branches, author, and timestamps. |
| haops_review_merge_requestA | Submit a review on a merge request. Verdicts: approved, changes_requested, commented. When enough approvals are met (per branch protection rules), MR status auto-transitions to approved. |
| haops_merge_merge_requestA | Merge an approved merge request. Checks branch protection rules (required approvals, allowed roles) and conflicts before merging. Supports fast-forward and three-way merge. |
| haops_get_branch_diffA | Compare two branches in a HAOps Git repository. Returns commits ahead/behind, changed files with stats, diff content, and conflict detection. Use before creating an MR to preview changes. |
| haops_list_updatesA | List available updates for a project. Shows update type, version, status, and date. Use to check for new MCP server versions, protocol changes, test suites, or onboarding templates. |
| haops_download_updateA | Download/view an update artifact. For protocols: returns content directly as JSON. For MCP server: returns download instructions with path and size. |
Prompts
Interactive templates invoked by user choice
| Name | Description |
|---|---|
No prompts | |
Resources
Contextual data attached and managed by the client
| Name | Description |
|---|---|
| All Projects | List all projects in HAOps |
Latest Blog Posts
- Who's Calling? MCP Hosts Are an Identity Blind Spot (And the Spec Knows It)By Om-Shree-0709 on .mcpAgent IdentityOAuth 2.1
- Your AI Chatbot Just Exposed Your CEO's Salary to an InternBy Om-Shree-0709 on .Agent IdentityMCP SecurityOAuth Delegation
- Why MCP Servers Need Execution Sandboxing (And Why Your Current Stack Isn't Enough)By Om-Shree-0709 on .Agentic AiPrompt InjectionWebAssembly
MCP directory API
We provide all the information about MCP servers via our MCP API.
curl -X GET 'https://glama.ai/api/mcp/v1/servers/tbranzov/haops-mcp-server'
If you have feedback or need assistance with the MCP directory API, please join our Discord server