{"ok":true,"site":{"host":"outpost-webmcp.alx21.chatgpt.site","url":"https://outpost-webmcp.alx21.chatgpt.site/","type":"live","desc":"A shared security triage workspace for human analysts and AI agents, powered by WebMCP.","tools":[{"name":"list_findings","kind":"answer","impl":"imperative","description":"Returns findings from the active Outpost workspace, optionally filtered by severity, status, component, tag, or minimum priority. Results provide the board context needed for evidence review and remediation planning.","title":"List security findings","annotations":{"readOnlyHint":true,"untrustedContentHint":true},"inputSchema":{"type":"object","properties":{"severity":{"type":"string","enum":["critical","high","medium","low"],"description":"Optional severity to match: critical, high, medium, or low."},"status":{"type":"string","enum":["open","investigating","accepted","scheduled","resolved"],"description":"Optional workflow status to match: open, investigating, accepted, scheduled, or resolved."},"component":{"type":"string","maxLength":120,"description":"Optional case-insensitive component name fragment."},"tag":{"type":"string","maxLength":60,"description":"Optional exact lowercase finding tag."},"minimumPriority":{"type":"number","minimum":0,"maximum":100,"description":"Optional minimum Outpost Priority Score from 0 through 100."},"limit":{"type":"integer","minimum":1,"maximum":100,"description":"Maximum number of findings to return; defaults to 100."}},"additionalProperties":false},"hasHandler":true,"hasExecute":true,"__source":"spec","executable":true,"handlerField":"execute"},{"name":"inspect_finding","kind":"answer","impl":"imperative","description":"Returns complete evidence, reasoning, remediation guidance, analyst notes, relationships, and scoring detail for one Outpost finding. The result supports an informed decision before workspace state changes.","title":"Inspect a security finding","annotations":{"readOnlyHint":true,"untrustedContentHint":true},"inputSchema":{"type":"object","properties":{"findingId":{"type":"string","pattern":"^F-[0-9]{3,6}$","description":"Outpost finding identifier, for example F-104."}},"required":["findingId"],"additionalProperties":false},"hasHandler":true,"hasExecute":true,"__source":"spec","executable":true,"handlerField":"execute"},{"name":"set_finding_severity","kind":"act","impl":"imperative","description":"Assigns a severity with a recorded reason to a security finding and records the reason in the activity trail. Human-locked findings reject automatic severity changes.","title":"Set finding severity","annotations":{"readOnlyHint":false,"untrustedContentHint":true},"inputSchema":{"type":"object","properties":{"findingId":{"type":"string","pattern":"^F-[0-9]{3,6}$","description":"Outpost finding identifier, for example F-104."},"severity":{"type":"string","enum":["critical","high","medium","low"],"description":"New severity: critical, high, medium, or low."},"reason":{"type":"string","minLength":4,"maxLength":500,"description":"Auditable reason for the requested decision."}},"required":["findingId","severity","reason"],"additionalProperties":false},"hasHandler":true,"hasExecute":true,"__source":"spec","executable":true,"handlerField":"execute"},{"name":"set_finding_status","kind":"act","impl":"imperative","description":"Assigns a workflow status to an Outpost finding and records the reason in the activity trail. Human-locked findings reject automatic status changes.","title":"Set finding status","annotations":{"readOnlyHint":false,"untrustedContentHint":true},"inputSchema":{"type":"object","properties":{"findingId":{"type":"string","pattern":"^F-[0-9]{3,6}$","description":"Outpost finding identifier, for example F-104."},"status":{"type":"string","enum":["open","investigating","accepted","scheduled","resolved"],"description":"New workflow status: open, investigating, accepted, scheduled, or resolved."},"reason":{"type":"string","minLength":4,"maxLength":500,"description":"Auditable reason for the requested decision."}},"required":["findingId","status","reason"],"additionalProperties":false},"hasHandler":true,"hasExecute":true,"__source":"spec","executable":true,"handlerField":"execute"},{"name":"add_finding_note","kind":"act","impl":"imperative","description":"Appends analysis or context to an Outpost finding without changing its rating. Notes remain visible to the analyst and return as untrusted user-authored content in later inspections.","title":"Add a finding note","annotations":{"readOnlyHint":false,"untrustedContentHint":true},"inputSchema":{"type":"object","properties":{"findingId":{"type":"string","pattern":"^F-[0-9]{3,6}$","description":"Outpost finding identifier, for example F-104."},"note":{"type":"string","minLength":2,"maxLength":1200,"description":"Analysis or contextual note to append to the finding."},"authorType":{"type":"string","enum":["agent"],"default":"agent","description":"Provenance label for the note author; defaults to agent."}},"required":["findingId","note"],"additionalProperties":false},"hasHandler":true,"hasExecute":true,"__source":"spec","executable":true,"handlerField":"execute"},{"name":"compare_findings","kind":"act","impl":"imperative","description":"Persists a visible comparison of two to six Outpost findings and returns their severity, impact, exploitability, confidence, effort, priority, and risk-to-effort values.","title":"Compare security findings","annotations":{"readOnlyHint":false,"untrustedContentHint":true},"inputSchema":{"type":"object","properties":{"findingIds":{"type":"array","minItems":2,"maxItems":6,"uniqueItems":true,"items":{"type":"string","pattern":"^F-[0-9]{3,6}$","description":"Outpost finding identifier, for example F-104."},"description":"Two to six unique finding identifiers to compare visibly."}},"required":["findingIds"],"additionalProperties":false},"hasHandler":true,"hasExecute":true,"__source":"spec","executable":true,"handlerField":"execute"},{"name":"reprioritize_findings","kind":"act","impl":"imperative","description":"Persists a relative priority order for a selected group of Outpost findings. Human-locked findings reject automatic reprioritization.","title":"Reprioritize findings","annotations":{"readOnlyHint":false,"untrustedContentHint":true},"inputSchema":{"type":"object","properties":{"findingIds":{"type":"array","minItems":2,"maxItems":100,"uniqueItems":true,"items":{"type":"string","pattern":"^F-[0-9]{3,6}$","description":"Outpost finding identifier, for example F-104."},"description":"Complete set of unique finding identifiers being reordered."},"priorityOrder":{"type":"array","minItems":2,"maxItems":100,"uniqueItems":true,"items":{"type":"string","pattern":"^F-[0-9]{3,6}$","description":"Outpost finding identifier, for example F-104."},"description":"The same finding identifiers in the requested highest-to-lowest priority order."},"reason":{"type":"string","minLength":4,"maxLength":500,"description":"Auditable reason for the requested decision."}},"required":["findingIds","priorityOrder","reason"],"additionalProperties":false},"hasHandler":true,"hasExecute":true,"__source":"spec","executable":true,"handlerField":"execute"},{"name":"calculate_risk_summary","kind":"act","impl":"imperative","description":"Returns a heuristic triage score, severity distribution, user-recorded resolution progress, and highest-priority findings using the transparent Outpost Priority Score.","title":"Calculate risk summary","annotations":{"readOnlyHint":true,"untrustedContentHint":true},"inputSchema":{"type":"object","properties":{},"additionalProperties":false},"hasHandler":true,"hasExecute":true,"__source":"spec","executable":true,"handlerField":"execute"},{"name":"create_remediation_sprint","kind":"act","impl":"imperative","description":"Creates and persists a visible capacity-bounded remediation sprint. Omitted finding IDs trigger automatic selection by risk, effort, or risk-to-effort while preserving accepted risk, resolved work, human locks, and prior human exclusions. The action schedules work without marking findings resolved.","title":"Create remediation sprint","annotations":{"readOnlyHint":false,"untrustedContentHint":true},"inputSchema":{"type":"object","properties":{"findingIds":{"type":"array","minItems":1,"maxItems":100,"uniqueItems":true,"items":{"type":"string","pattern":"^F-[0-9]{3,6}$","description":"Outpost finding identifier, for example F-104."},"description":"Optional explicit findings to schedule. When omitted, Outpost automatically selects eligible findings."},"sprintName":{"type":"string","minLength":2,"maxLength":80,"description":"Visible sprint name; defaults to Priority reduction sprint."},"capacityDays":{"type":"number","minimum":0.5,"maximum":60,"description":"Hard engineering capacity from 0.5 through 60 days."},"prioritizeBy":{"type":"string","enum":["risk","effort","risk_to_effort"],"default":"risk","description":"Automatic selection strategy used when findingIds is omitted; defaults to risk."}},"required":["capacityDays"],"additionalProperties":false},"hasHandler":true,"hasExecute":true,"__source":"spec","executable":true,"handlerField":"execute"},{"name":"remove_from_remediation_sprint","kind":"act","impl":"imperative","description":"Removes one finding from the active remediation sprint and records an auditable reason. The finding remains in the workspace and is neither resolved nor deleted.","title":"Remove finding from sprint","annotations":{"readOnlyHint":false,"untrustedContentHint":true},"inputSchema":{"type":"object","properties":{"findingId":{"type":"string","pattern":"^F-[0-9]{3,6}$","description":"Outpost finding identifier, for example F-104."},"reason":{"type":"string","minLength":4,"maxLength":500,"description":"Auditable reason for the requested decision."}},"required":["findingId","reason"],"additionalProperties":false},"hasHandler":true,"hasExecute":true,"__source":"spec","executable":true,"handlerField":"execute"},{"name":"rebalance_remediation_sprint","kind":"act","impl":"imperative","description":"Recalculates the active remediation sprint for a capacity using risk, effort, or risk-to-effort. The algorithm preserves every human-locked inclusion or exclusion and every manual human removal.","title":"Rebalance remediation sprint","annotations":{"readOnlyHint":false,"untrustedContentHint":true},"inputSchema":{"type":"object","properties":{"capacityDays":{"type":"number","minimum":0.5,"maximum":60,"description":"New hard engineering capacity from 0.5 through 60 days."},"prioritizeBy":{"type":"string","enum":["risk","effort","risk_to_effort"],"description":"Optimization strategy for the visible sprint."}},"required":["capacityDays","prioritizeBy"],"additionalProperties":false},"hasHandler":true,"hasExecute":true,"__source":"spec","executable":true,"handlerField":"execute"},{"name":"mark_finding_human_locked","kind":"act","impl":"imperative","description":"Locks a finding against automatic changes. Only the human interface can unlock it. Automatic severity, status, priority, and sprint-scope operations preserve locked findings.","title":"Set human decision lock","annotations":{"readOnlyHint":false,"untrustedContentHint":true},"inputSchema":{"type":"object","properties":{"findingId":{"type":"string","pattern":"^F-[0-9]{3,6}$","description":"Outpost finding identifier, for example F-104."},"locked":{"type":"boolean","const":true,"description":"Must be true. Unlocking is available only in the human interface."},"reason":{"type":"string","minLength":4,"maxLength":500,"description":"Auditable reason for the requested decision."}},"required":["findingId","locked","reason"],"additionalProperties":false},"hasHandler":true,"hasExecute":true,"__source":"spec","executable":true,"handlerField":"execute"},{"name":"get_activity_history","kind":"answer","impl":"imperative","description":"Returns recent human, agent, and system actions from the active Outpost review, including provenance that distinguishes analyst decisions from agent recommendations.","title":"Get activity history","annotations":{"readOnlyHint":true,"untrustedContentHint":true},"inputSchema":{"type":"object","properties":{"limit":{"type":"integer","minimum":1,"maximum":100,"description":"Maximum number of newest activity entries to return; defaults to 25."}},"additionalProperties":false},"hasHandler":true,"hasExecute":true,"__source":"spec","executable":true,"handlerField":"execute"},{"name":"reset_demo_workspace","kind":"act","impl":"imperative","description":"Restores an example workspace after exact confirmation. Refuses to overwrite personal findings. The result contains only reset status and the restored finding count.","title":"Reset demo workspace","annotations":{"readOnlyHint":false,"untrustedContentHint":true},"inputSchema":{"type":"object","properties":{"confirmation":{"type":"string","const":"RESET","description":"Exact confirmation token RESET."}},"required":["confirmation"],"additionalProperties":false},"hasHandler":true,"hasExecute":true,"__source":"spec","executable":true,"handlerField":"execute"}],"category":"Developer Tools","favicon":"/favicons/outpost-webmcp.alx21.chatgpt.site.png","apiSurface":"spec","toolCount":14}}