{"apiVersion":"v1","directorySlug":"hoffmantg-mcp-2dccf90290","title":"Hoffman Technology Group","description":null,"pageUrl":"https://www.mcpbundles.com/skills/hoffmantg-mcp-2dccf90290","connectPath":"importable","connectAction":"import_server","catalogListing":false,"bundleSlug":null,"listingKind":"remote_mcp","kind":"provider","transportUrl":"https://mcp.hoffmantg.com/mcp","hostedMcpUrl":null,"toolCount":22,"toolInventoryStatus":"observed","refreshedAt":"2026-11-03T13:26:00.516172+00:00","registryName":"com.hoffmantg/hoffmantg-mcp-2dccf90290","registryVersion":"2026.11.3","registryEligible":true,"tools":[{"name":"list_agents","description":"List all connected Windows agent machines and their status.","inputSchema":{"type":"object","$schema":"http://json-schema.org/draft-07/schema#","properties":{}},"logicalName":"list_agents","displayName":"list_agents","title":"list_agents","annotations":{"untrustedContentHint":true,"readOnlyHint":true}},{"name":"dispatch_task","description":"Send a Claude Code task to a Windows agent. Returns a taskId — poll with get_task_status. NOTE: workingDir is local to the targeted agent. Files written during a task only exist on that agent's disk. To move files between agents, commit + push.","inputSchema":{"type":"object","$schema":"http://json-schema.org/draft-07/schema#","required":["prompt"],"properties":{"pool":{"type":"string"},"repo":{"type":"string"},"queue":{"type":"boolean"},"prompt":{"type":"string"},"agentId":{"type":"string"},"claudeMd":{"type":"string"},"workingDir":{"type":"string"},"createWorkingDir":{"type":"boolean"}},"additionalProperties":false},"logicalName":"dispatch_task","displayName":"dispatch_task","title":"dispatch_task","annotations":{"untrustedContentHint":true,"readOnlyHint":true}},{"name":"get_task_status","description":"Check status and recent output of a task. Poll this after dispatch_task to monitor progress. Shows live streaming output including tool calls.","inputSchema":{"type":"object","$schema":"http://json-schema.org/draft-07/schema#","required":["taskId"],"properties":{"taskId":{"type":"string"},"tailLines":{"type":"number"}},"additionalProperties":false},"logicalName":"get_task_status","displayName":"get_task_status","title":"get_task_status","annotations":{"untrustedContentHint":true,"readOnlyHint":true}},{"name":"get_task_status_batch","description":"Poll up to 50 task IDs in one call. Returns one row per requested ID — known tasks show status and key fields, unknown IDs report NOT_FOUND. Use this instead of N get_task_status calls when watching several parallel dispatches.","inputSchema":{"type":"object","$schema":"http://json-schema.org/draft-07/schema#","required":["taskIds"],"properties":{"taskIds":{"type":"array","items":{"type":"string"},"maxItems":50,"minItems":1},"tailLines":{"type":"integer","default":0,"maximum":5,"minimum":0}},"additionalProperties":false},"logicalName":"get_task_status_batch","displayName":"get_task_status_batch","title":"get_task_status_batch","annotations":{"untrustedContentHint":true,"readOnlyHint":true}},{"name":"get_task_output","description":"Get full output of a completed task.","inputSchema":{"type":"object","$schema":"http://json-schema.org/draft-07/schema#","required":["taskId"],"properties":{"taskId":{"type":"string"},"outputType":{"enum":["all","stdout","stderr","diff","info","text","tool_use","tool_result","result"],"type":"string"}},"additionalProperties":false},"logicalName":"get_task_output","displayName":"get_task_output","title":"get_task_output","annotations":{"untrustedContentHint":true,"readOnlyHint":true}},{"name":"list_tasks","description":"List recent tasks and their statuses.","inputSchema":{"type":"object","$schema":"http://json-schema.org/draft-07/schema#","properties":{"limit":{"type":"number"},"status":{"enum":["all","running","queued","dispatching","paused","done","failed","cancelling","cancelled","cancel_failed","cancel_timeout"],"type":"string"},"include_orphans":{"type":"boolean","default":false}},"additionalProperties":false},"logicalName":"list_tasks","displayName":"list_tasks","title":"list_tasks","annotations":{"untrustedContentHint":true,"readOnlyHint":true}},{"name":"cancel_task","description":"Cancel a running or queued task.","inputSchema":{"type":"object","$schema":"http://json-schema.org/draft-07/schema#","required":["taskId"],"properties":{"taskId":{"type":"string"}},"additionalProperties":false},"logicalName":"cancel_task","displayName":"cancel_task","title":"cancel_task","annotations":{"untrustedContentHint":true,"readOnlyHint":true}},{"name":"admin_force_release_slot","description":"Force-release a slot stuck in CANCEL_TIMEOUT. Operator escape hatch when the agent never responded to a cancel and the (agentId, workingDir) lock is held. Marks the stuck task CANCEL_FAILED with outcome=manual_force_release and promotes any queued task on that slot.","inputSchema":{"type":"object","$schema":"http://json-schema.org/draft-07/schema#","required":["agentId","workingDir"],"properties":{"agentId":{"type":"string"},"workingDir":{"type":"string"}},"additionalProperties":false},"logicalName":"admin_force_release_slot","displayName":"admin_force_release_slot","title":"admin_force_release_slot","annotations":{"untrustedContentHint":true,"readOnlyHint":true}},{"name":"list_projects","description":"List projects from the HTG project board (HTGOps Projects API). Cheap index view — one line per project. Use get_project for the full body.","inputSchema":{"type":"object","$schema":"http://json-schema.org/draft-07/schema#","properties":{"tag":{"type":"string"},"search":{"type":"string"},"status":{"enum":["concept","spec","building","shipped","parked"],"type":"string"},"priority":{"enum":["low","medium","high"],"type":"string"}},"additionalProperties":false},"logicalName":"list_projects","displayName":"list_projects","title":"list_projects","annotations":{"untrustedContentHint":true,"readOnlyHint":true}},{"name":"get_project","description":"Get full detail for a single project from the HTG project board, including the body markdown. Use list_projects first to find the slug.","inputSchema":{"type":"object","$schema":"http://json-schema.org/draft-07/schema#","required":["slug"],"properties":{"slug":{"type":"string"}},"additionalProperties":false},"logicalName":"get_project","displayName":"get_project","title":"get_project","annotations":{"untrustedContentHint":true,"readOnlyHint":true}},{"name":"get_projects_by_status","description":"List projects filtered to a single lifecycle status. Same data as list_projects({status}), but hits the dedicated /by-status endpoint.","inputSchema":{"type":"object","$schema":"http://json-schema.org/draft-07/schema#","required":["status"],"properties":{"status":{"enum":["concept","spec","building","shipped","parked"],"type":"string"}},"additionalProperties":false},"logicalName":"get_projects_by_status","displayName":"get_projects_by_status","title":"get_projects_by_status","annotations":{"untrustedContentHint":true,"readOnlyHint":true}},{"name":"list_project_tags","description":"List all tags used on the HTG project board with usage counts.","inputSchema":{"type":"object","$schema":"http://json-schema.org/draft-07/schema#","properties":{}},"logicalName":"list_project_tags","displayName":"list_project_tags","title":"list_project_tags","annotations":{"untrustedContentHint":true,"readOnlyHint":true}},{"name":"project_stats","description":"Roll up counts of projects on the HTG project board by status and priority.","inputSchema":{"type":"object","$schema":"http://json-schema.org/draft-07/schema#","properties":{}},"logicalName":"project_stats","displayName":"project_stats","title":"project_stats","annotations":{"untrustedContentHint":true,"readOnlyHint":true}},{"name":"recent_activity","description":"Roll up task activity over a time window. Survives relay restart, so good for 'what happened today / yesterday / last week'.","inputSchema":{"type":"object","$schema":"http://json-schema.org/draft-07/schema#","properties":{"window":{"enum":["24h","7d","30d"],"type":"string"}},"additionalProperties":false},"logicalName":"recent_activity","displayName":"recent_activity","title":"recent_activity","annotations":{"untrustedContentHint":true,"readOnlyHint":true}},{"name":"get_task_summary","description":"Get full record of a task including its summary postscript and git state. Persists across relay restart, unlike get_task_status.","inputSchema":{"type":"object","$schema":"http://json-schema.org/draft-07/schema#","required":["task_id"],"properties":{"task_id":{"type":"string"}},"additionalProperties":false},"logicalName":"get_task_summary","displayName":"get_task_summary","title":"get_task_summary","annotations":{"untrustedContentHint":true,"readOnlyHint":true}},{"name":"get_claude_usage","description":"Get the latest observed claude.ai chat usage — 5-hour session and 7-day rolling utilization, plus per-model breakdown. Populated by the browser extension when the claude.ai tab is open; if no snapshot has been captured yet, returns { available: false }. The 'stale' flag is true when the snapshot is older than 15 minutes.","inputSchema":{"type":"object","$schema":"http://json-schema.org/draft-07/schema#","properties":{}},"logicalName":"get_claude_usage","displayName":"get_claude_usage","title":"get_claude_usage","annotations":{"untrustedContentHint":true,"readOnlyHint":true}},{"name":"htgsuite_source_drift","description":"Query source drift across dev/farmer machines: which machine has which repo at what branch/commit, which repos carry unmerged remote branches (with tip age), which machines are MISSING a given repo, and whether a specific branch exists on origin (and is merged). Data comes from the DevOpsSync collector, which captures remote refs via `git ls-remote` — so a branch that exists on origin but was never fetched locally is still reported (unlike `git branch -a`). Use this BEFORE dispatch_task to avoid","inputSchema":{"type":"object","$schema":"http://json-schema.org/draft-07/schema#","required":["query"],"properties":{"repo":{"type":"string"},"query":{"enum":["repo_locations","missing_repo","unmerged_remote_branches","branch_on_origin","machines"],"type":"string"},"branch":{"type":"string"},"minAgeDays":{"type":"integer","minimum":0}},"additionalProperties":false},"logicalName":"htgsuite_source_drift","displayName":"htgsuite_source_drift","title":"htgsuite_source_drift","annotations":{"untrustedContentHint":true,"readOnlyHint":true}},{"name":"get_current_page","description":"Get the most recently captured web page from the user's browser. Use when the user says 'look at this page', 'read what I'm looking at', 'see my LinkedIn profile', etc. Returns text content; if hasHtml is true and you need structural detail, follow up with get_current_page_html.","inputSchema":{"type":"object","$schema":"http://json-schema.org/draft-07/schema#","properties":{}},"logicalName":"get_current_page","displayName":"get_current_page","title":"get_current_page","annotations":{"untrustedContentHint":true,"readOnlyHint":true}},{"name":"get_current_page_html","description":"Get the sanitized HTML of the most recently captured page, if HTML capture was enabled for it. Use when text content alone loses meaningful structure (LinkedIn timelines, tables, dashboards). HTML is sanitized — no scripts, styles, or form values.","inputSchema":{"type":"object","$schema":"http://json-schema.org/draft-07/schema#","properties":{}},"logicalName":"get_current_page_html","displayName":"get_current_page_html","title":"get_current_page_html","annotations":{"untrustedContentHint":true,"readOnlyHint":true}},{"name":"list_recent_pages","description":"List recently captured pages (metadata only — no content). Useful when user has been browsing in session-capture mode and you need to find a specific page. Up to 25 entries.","inputSchema":{"type":"object","$schema":"http://json-schema.org/draft-07/schema#","properties":{"limit":{"type":"integer","maximum":25,"minimum":1}},"additionalProperties":false},"logicalName":"list_recent_pages","displayName":"list_recent_pages","title":"list_recent_pages","annotations":{"untrustedContentHint":true,"readOnlyHint":true}},{"name":"get_captured_page_by_id","description":"Retrieve a specific captured page's text content by its id. Use the id from list_recent_pages or get_current_page.","inputSchema":{"type":"object","$schema":"http://json-schema.org/draft-07/schema#","required":["id"],"properties":{"id":{"type":"string"}},"additionalProperties":false},"logicalName":"get_captured_page_by_id","displayName":"get_captured_page_by_id","title":"get_captured_page_by_id","annotations":{"untrustedContentHint":true,"readOnlyHint":true}},{"name":"get_captured_page_html_by_id","description":"Retrieve a specific captured page's sanitized HTML by its id, if HTML capture was enabled for that capture.","inputSchema":{"type":"object","$schema":"http://json-schema.org/draft-07/schema#","required":["id"],"properties":{"id":{"type":"string"}},"additionalProperties":false},"logicalName":"get_captured_page_html_by_id","displayName":"get_captured_page_html_by_id","title":"get_captured_page_html_by_id","annotations":{"untrustedContentHint":true,"readOnlyHint":true}}],"toolSource":"directory_preview","agentAction":"both","installLinks":[{"id":"cursor","label":"Cursor","href":"cursor://anysphere.cursor-deeplink/mcp/install?name=Hoffman-Technology-Group&config=eyJ1cmwiOiAiaHR0cHM6Ly9tY3AuaG9mZm1hbnRnLmNvbS9tY3AifQ%3D%3D"},{"id":"vscode","label":"VS Code","href":"vscode:mcp/install?%7B%22name%22%3A%22Hoffman-Technology-Group%22%2C%22type%22%3A%22http%22%2C%22url%22%3A%22https%3A%2F%2Fmcp.hoffmantg.com%2Fmcp%22%7D"},{"id":"vscode-insiders","label":"VS Code Insiders","href":"vscode-insiders:mcp/install?%7B%22name%22%3A%22Hoffman-Technology-Group%22%2C%22type%22%3A%22http%22%2C%22url%22%3A%22https%3A%2F%2Fmcp.hoffmantg.com%2Fmcp%22%7D"},{"id":"claude-web","label":"Claude.ai","href":"https://claude.ai/customize/connectors?modal=add-custom-connector&connectorName=Hoffman+Technology+Group&connectorUrl=https%3A%2F%2Fmcp.hoffmantg.com%2Fmcp"},{"id":"codex","label":"Codex","copyText":"codex mcp add \"Hoffman-Technology-Group\" --url \"https://mcp.hoffmantg.com/mcp\""},{"id":"chatgpt","label":"ChatGPT","href":"https://www.mcpbundles.com/docs/integrations/chatgpt"}],"catalogUrl":"https://www.mcpbundles.com/api/directory/v1/servers/hoffmantg-mcp-2dccf90290","callUrl":"https://www.mcpbundles.com/api/directory/v1/servers/hoffmantg-mcp-2dccf90290/tools/{tool}","mcpServerUrl":"https://mcp.hoffmantg.com/mcp","liveCatalogUrl":"https://www.mcpbundles.com/api/directory/v1/servers/hoffmantg-mcp-2dccf90290?live=1"}