{"name":"io.github.smlfg/hai-mcp","slug":"smlfg-hai-mcp","title":"HAI-MCP","description":"Model-agnostic MCP control plane for HAI: bounded missions, owner-gated actions, drift checks.","url":"https://mcp.market/server/smlfg-hai-mcp","rating":null,"grade":"B","score":83,"certified":false,"status":"active","category":"ai","tags":["ai"],"presence":{"score":15,"stars":0,"forks":0,"downloads_week":null,"last_push_at":"2026-10-13T10:54:02.000Z","license":"MIT"},"uptime":null,"claimed":false,"transport":"pypi","callable_via_gateway":false,"default_price_micros":0,"repository":"https://github.com/smlfg/hai-mcp","website":null,"version":"0.1.0","remotes":[],"packages":[{"registryType":"pypi","registryBaseUrl":"https://pypi.org","identifier":"hai-mcp","version":"0.1.0","runtimeHint":"uvx","transport":{"type":"stdio"},"environmentVariables":[{"description":"Directory for the global HAI state (missions, leases, proofs). Default: ~/.hai","name":"HAI_HOME"},{"description":"Directory for the owner out-of-band channel (one-time nonces). Deliberately outside HAI_HOME. Default: ~/.hai-owner","name":"HAI_OWNER_HOME"},{"description":"Transport selection: 'stdio' (default) or 'streamable-http'.","default":"stdio","name":"HAI_TRANSPORT"},{"description":"Host for streamable-http transport. Refused unless loopback or HAI_HTTP_TOKEN is set.","default":"127.0.0.1","name":"HAI_HTTP_HOST"},{"description":"Port for streamable-http transport.","default":"8765","name":"HAI_HTTP_PORT"},{"description":"Bearer token required to accept non-loopback streamable-http connections. Loopback binds without a token.","isSecret":true,"name":"HAI_HTTP_TOKEN"}]}],"tools":[{"name":"hai_accept_next_step","description":"Promote proposed (or provided) content to canonical NEXT_STEP.md — owner-gated.","write_action":false,"price_micros":0,"input_schema":null},{"name":"hai_authorize_session","description":"Grant a time-bounded session lease tied to mission ID and exact contract version.","write_action":false,"price_micros":0,"input_schema":null},{"name":"hai_bind_project","description":"Bind a device-local directory to a logical project_id mount table entry. Requires owner_ack=true + reason.","write_action":false,"price_micros":0,"input_schema":null},{"name":"hai_check_activity","description":"Deterministically classify planned or observed activity against the mission contract.","write_action":false,"price_micros":0,"input_schema":null},{"name":"hai_checkpoint","description":"Snapshot ACTIVE_CONTEXT and optional project artifacts under HAI_HOME/history/checkpoints.","write_action":false,"price_micros":0,"input_schema":null},{"name":"hai_close_mission","description":"Complete with verified per-criterion evidence, or abandon (owner-gated).","write_action":false,"price_micros":0,"input_schema":null},{"name":"hai_distill","description":"Reduce an intake to EXACTLY one decision + one next step; the server parks everything else.","write_action":false,"price_micros":0,"input_schema":null},{"name":"hai_drift_check","description":"Lightweight mismatch check against the mission contract. Thin wrapper over hai_check_activity.","write_action":false,"price_micros":0,"input_schema":null},{"name":"hai_get_contract","description":"Return the exact canonical mission contract for a valid session lease (not a summary).","write_action":false,"price_micros":0,"input_schema":null},{"name":"hai_get_next_step","description":"Read the canonical NEXT_STEP.md for a project (or report none).","write_action":false,"price_micros":0,"input_schema":null},{"name":"hai_health","description":"Check HAI-MCP server health and optional project path usability. No model calls.","write_action":false,"price_micros":0,"input_schema":null},{"name":"hai_intake","description":"Capture a raw thought immutably. Returns an intake id only — never actionable, never starts an agent.","write_action":false,"price_micros":0,"input_schema":null},{"name":"hai_mission_start","description":"Fast start: declare problem + artifact + time limit. Thin wrapper over hai_open_mission (one canonical contract).","write_action":false,"price_micros":0,"input_schema":null},{"name":"hai_open_mission","description":"Open a bounded mission with a versioned canonical contract. One active mission globally.","write_action":false,"price_micros":0,"input_schema":null},{"name":"hai_park","description":"Park a thought/meta item in HAI inbox without changing ACTIVE lanes.","write_action":false,"price_micros":0,"input_schema":null},{"name":"hai_park_item","description":"Park a mission-linked idea with full context. Grants no execution right; contract unchanged.","write_action":false,"price_micros":0,"input_schema":null},{"name":"hai_proof","description":"Close a mission only against verified per-criterion evidence. Thin wrapper over hai_close_mission (completed).","write_action":false,"price_micros":0,"input_schema":null},{"name":"hai_propose_next_step","description":"Write NEXT_STEP.proposed.md (not canonical). Promote via hai_accept_next_step.","write_action":true,"price_micros":0,"input_schema":null},{"name":"hai_read_artifacts","description":"Read-only summary of HAI Projek-Managment run-contract artifacts.","write_action":false,"price_micros":0,"input_schema":null},{"name":"hai_recontract","description":"Apply a visible field-level contract diff; revokes all leases. Owner-gated.","write_action":false,"price_micros":0,"input_schema":null},{"name":"hai_recover","description":"Return the smallest recovery next action from latest or named checkpoint (read-only advice).","write_action":false,"price_micros":0,"input_schema":null},{"name":"hai_set_focus","description":"Set focus and register an ACTIVE lane (max 2). Fails if a third ACTIVE is requested.","write_action":false,"price_micros":0,"input_schema":null},{"name":"hai_status","description":"Return ACTIVE lanes, focus, inbox count, and optional project next-step flags.","write_action":false,"price_micros":0,"input_schema":null},{"name":"hai_stop","description":"Hard day terminal: record the three answers, invalidate active leases; no next-day plan. Missions are not closed.","write_action":false,"price_micros":0,"input_schema":null}],"scan":{"score":83,"grade":"B","scanned_at":"2026-10-13T14:39:19.179Z","report":{"scannerVersion":"0.1.10","scannedAt":"2026-10-13T14:39:19.121Z","components":{"code":{"score":25,"max":25,"notes":["19 source files scanned"]},"reliability":{"score":-1,"max":20,"notes":["no gateway calls yet and no remote to probe"]},"poisoning":{"score":-1,"max":15,"notes":["tools not inspected (local package is not executed); not counted"]},"auth":{"score":6,"max":15,"notes":["static API keys via environment variables"]},"maintenance":{"score":15,"max":15,"notes":["last push 0 days ago"]},"identity":{"score":8,"max":10,"notes":["registry namespace matches repository owner","GitHub account older than a year"]}},"findings":[],"inputs":{"packages":[{"registryType":"pypi","identifier":"hai-mcp","version":"0.1.0","found":true,"dependencyCount":2,"publishedAt":"2026-10-13T10:47:15.164802Z"}],"repo":{"found":true,"owner":"smlfg","repo":"hai-mcp","archived":false,"pushedAt":"2026-10-13T10:54:02Z","stars":0,"forks":0,"openIssues":6,"ownerType":"User","ownerAvatarUrl":"https://avatars.githubusercontent.com/u/186922365?v=4","ownerCreatedAt":"2024-10-31T10:52:47Z","license":"MIT"},"icon":{"url":"https://avatars.githubusercontent.com/u/186922365?v=4&s=128","source":"github"},"presence":{"stars":0,"forks":0,"downloadsWeek":null,"license":"MIT","lastPushAt":"2026-10-13T10:54:02.000Z","score":15}}}},"grade_history":[],"reviews":[]}