{"ok":true,"site":{"host":"moaqil.github.io","url":"https://moaqil.github.io/pursuit-permit-webmcp/","type":"live","desc":"Pursuit Permit: a browser-native stale-authority firewall that binds each permit to the exact facts a person approved.","tools":[{"name":"search_opportunities","kind":"act","impl":"imperative","description":"Search labeled demo opportunity fixtures by query and deadline. Returns grounded ID, title, value, and deadline summaries and updates the visible result set.","title":"Search opportunities","annotations":{"readOnlyHint":false,"untrustedContentHint":true},"inputSchema":{"type":"object","additionalProperties":false,"required":["query"],"properties":{"query":{"type":"string","minLength":1,"maxLength":120,"description":"Meaningful procurement search terms, such as software or cloud migration."},"closingWithinDays":{"type":"integer","minimum":1,"maximum":365,"default":45,"description":"Inclusive deadline window in days from asOf."},"asOf":{"type":"string","format":"date","default":"2026-08-31","description":"Demo scenario date in YYYY-MM-DD format."}}},"hasHandler":true,"hasExecute":true,"__source":"spec","executable":true,"handlerField":"execute","page":"/pursuit-permit-webmcp/"},{"name":"compare_opportunities","kind":"act","impl":"imperative","description":"Compare 1 to 3 visible opportunities against the current demo evidence revision, cite every mandatory failure, and plan without committing capacity. Comparison can change the recommended answer; it cannot widen a historical permit.","title":"Compare opportunities","annotations":{"readOnlyHint":false,"untrustedContentHint":true},"inputSchema":{"type":"object","additionalProperties":false,"required":["opportunityIds"],"properties":{"opportunityIds":{"type":"array","minItems":1,"maxItems":3,"uniqueItems":true,"description":"One to three unique opportunity IDs returned by search_opportunities.","items":{"type":"string","minLength":1,"maxLength":64}}}},"hasHandler":true,"hasExecute":true,"__source":"spec","executable":true,"handlerField":"execute","page":"/pursuit-permit-webmcp/"},{"name":"shortlist_opportunity","kind":"act","impl":"imperative","description":"Propose one compared eligible or recommended opportunity and its demo bid-capacity allocation for visible reviewer inspection. Requires a current comparison and an idempotency key. It commits zero hours and invalidates prior approval. An active permit produces active_permit_conflict and cannot be restaged or displaced.","title":"Propose pursuit allocation","annotations":{"readOnlyHint":false,"untrustedContentHint":true},"inputSchema":{"type":"object","additionalProperties":false,"required":["opportunityId","idempotencyKey"],"properties":{"opportunityId":{"type":"string","minLength":1,"maxLength":64,"description":"An eligible or recommended ID from compare_opportunities."},"idempotencyKey":{"type":"string","minLength":1,"maxLength":100,"description":"Stable unique key for this exact shortlist intent and workflow revision."}}},"hasHandler":true,"hasExecute":true,"__source":"spec","executable":true,"handlerField":"execute","page":"/pursuit-permit-webmcp/"},{"name":"issue_pursuit_permit","kind":"act","impl":"imperative","description":"Issue a revision-bound pursuit permit and return its decision receipt. Requires one proposed allocation and exact visible reviewer approval; otherwise it returns approval_required and commits nothing. A successful retry commits only the approved demo capacity.","title":"Issue pursuit permit","annotations":{"readOnlyHint":false,"untrustedContentHint":true},"inputSchema":{"type":"object","additionalProperties":false,"required":["idempotencyKey"],"properties":{"idempotencyKey":{"type":"string","minLength":1,"maxLength":100,"description":"Stable unique key for this exact approved decision revision."}}},"hasHandler":true,"hasExecute":true,"__source":"spec","executable":true,"handlerField":"execute","page":"/pursuit-permit-webmcp/"},{"name":"retest_pursuit_permit","kind":"act","impl":"imperative","description":"Retest one living receipt against newer visible evidence. It evaluates only the permit's recorded REOPEN THIS BID IF conditions, preserves the immutable active permit, and exposes any scope or capacity collision without moving the team.","title":"Retest pursuit permit","annotations":{"readOnlyHint":false,"untrustedContentHint":true},"inputSchema":{"type":"object","additionalProperties":false,"required":["receiptId"],"properties":{"receiptId":{"type":"string","minLength":1,"maxLength":100,"description":"Receipt ID returned by issue_pursuit_permit."}}},"hasHandler":true,"hasExecute":true,"__source":"spec","executable":true,"handlerField":"execute","page":"/pursuit-permit-webmcp/"}],"category":"AI & Agents","apiSurface":"spec","toolCount":5}}