2ools is an MCP server with 81 tools an agent can call, among them act_on_project_os_task, activate_project, add_project_feedback. It answers at https://2ools.app/mcp over streamable HTTP, and it listed its tools to an anonymous client, so no sign-in was needed for that. Our probes reached it 10 of 10 times since 4 September 2026; the last check, on 17 October 2026, succeeded.
Build, version, review, and export websites, web apps, and games from a conversation.
Description as the publisher wrote it.
| Tool | What it does |
|---|---|
act_on_project_os_task | App-only route for an authenticated person's explicit click in the native Project OS panel. Hidden from the model; every action is revision checked and idempotent, and cancellation requires an explicit confirmation. Inputs: project_id, change |
activate_project | Record the person's one-time choice to use this already-connected 2ools client with one exact saved project. Call only after the person approves in the inline card or explicitly in chat. This does not read or import local files and does not Inputs: project_id, approval |
add_project_feedback | Add an attributable review comment to a saved project version. This does not modify source or approve the version. Inputs: project_id, version_id, page, x, y, label |
add_project_pin | Add an attributable note or safe http(s) link to the shared project workspace. Inputs: project_id, version_id, kind, url, label, x |
advance_project_agent_mode | Idempotently re-evaluate and, when safe, queue the next dependency-ready safe-auto plan step on the project's already approved Agent, Engine, and provider. Running, review, blocked, and approval states never double-dispatch. Inputs: project_id |
answer_project_engineering_decision | Accept or reject one exact native-safe engineering decision at one exact project revision. Requires an explicit confirmation and durable note, enforces project role and high-risk owner policy, rejects revision conflicts, preserves immutable Inputs: project_id, decision_id, expected_revision, answer, note, risk_level |
approve_artifact_version | Approve one pending immutable artifact version and make it current. Repeating the same decision is idempotent. Inputs: request_id, note |
approve_version | Use separately delegated review authority to approve one saved version and make it the project's active version. Does not publish, export, or change project permissions. Inputs: project_id, version_id, confirmation, decision_note |
attach_project_engine_workspace | Owner-authorized attachment of one saved project to one exact opaque workspace on one exact online 2ools Engine. This grants future project work access to real source on that computer, so show the selected computer/workspace and obtain expl Inputs: project_id, engine_id, workspace_id, expected_revision, confirm |
build_from_conversation | Create a new 2ools project from a structured conversation brief and queue one durable build. Returns project_id and job_id; use get_build to retrieve completion status and the protected preview. Inputs: project_name, create_separate_project, conversation_summary, headline, entity, audience |
cancel_agent_run | Stop one queued or running Agent execution and close its durable run history. Completed, failed, stalled, and already-canceled runs keep their terminal truth. Inputs: project_id, agent_id, run_id, job_id, confirm |
cancel_build | Cancel one exact queued or running non-Agent 2ools build after named explicit confirmation. Repeating the same cancellation is safe, late Engine results are rejected, completed versions are never deleted, and immutable history remains. Gove Inputs: job_id, reason, confirm |
checkpoint_work_session | End the current lease with a compact continuation checkpoint, or place work in an explicit waiting or blocked state. Ambiguous external effects always wait for reconciliation and are never auto-retried. Inputs: session_id, checkpoint, disposition, reason, waiting_for, effect_state |
claim_work_assignment | Atomically claim one open assignment and receive a five-minute renewable lease plus an immutable budget snapshot. Inputs: assignment_id, input_refs, idempotency_key |
compare_versions | Compare two saved versions in one project without returning source. Reports lineage, review state, page additions/removals, byte sizes, and SHA-256 identity for each page. Inputs: project_id, left_version_id, right_version_id |
configure_project_agent_mode | Turn the selected project's governed Agent Mode on or off. When enabled, the person chooses one armed project Agent, one exact Engine, and one provider; only reviewed safe-auto steps in the exact approved plan may advance in dependency orde Inputs: project_id, enabled, agent_id, engine_id, provider, expected_revision |
continue_project | Return one project's current Living Plan, next useful move, continuity-readiness gaps, latest evidence, and a compact 2ools-active receipt. Opens a compact status, Continue, and Open Project OS card on MCP Apps hosts; the full Project OS be Inputs: project_id, response_format |
create_public_preview | Turn a complete standalone HTML document already created in this chat into a temporary, read-only 2ools preview. Free and authless; expires after 24 hours. This tool does not generate the page—write the HTML first, then call it. Inputs: name, html, idempotency_key |
create_version_share_link | Create or recover a durable public or code-protected link for one exact saved version. Reusing the idempotency key returns the original result. Inputs: project_id, version_id, access, page, idempotency_key |
create_work_assignment | Create a durable assignment with acceptance criteria and hard step, time, and spend ceilings. Inputs: project_id, title, brief, acceptance_criteria, dependency_ids, required_evidence_kinds |
decide_work_assignment | Complete submitted work or reopen it with useful feedback. Requires separately delegated work-review authority. Inputs: assignment_id, decision, note, idempotency_key |
dispatch_project_work | Reserve one exact revision-checked Project OS task for one armed project Agent, then queue it on one exact online Engine and authenticated provider selected by the person. Queued is not working; the task becomes active only after that Engin Inputs: project_id, assignment_id, expected_revision, agent_id, engine_id, provider |
get_account_profile | Read the authenticated person's 2ools profile, current account labels, and server-derived effective MCP scopes. Passwords, private credentials, billing instruments, and provider secrets are never returned. |
get_agent | Read one Agent's saved Limits, trigger, immutable revision summaries, and redacted append-only run traces. Raw prompts, tool arguments, credentials, and source bytes are not returned. Inputs: agent_id, run_limit |
get_artifact | Read one artifact's immutable version history, provenance, attribution, digests, and review states without returning stored bytes. Inputs: project_id, artifact_id |
get_build | Get one build's current status, progress, errors, completed version IDs, and protected preview URLs. Does not return generated source code. Inputs: job_id |
get_engine_dispatch | Read the authoritative state of one exact Engine dispatch. Queued means accepted but not started; running appears only after the selected Engine atomically claims the lease. Returns claim, heartbeat, failure, and terminal state without clie Inputs: job_id |
get_project | Get a 2ools project's brief, selected pages, active version, and compact version history. Does not return generated source code. Inputs: project_id |
get_project_access | Read the authenticated person's role plus the canonical project owner, members, and pending invitations. Non-managers can read active members but never receive pending-invite metadata. Inputs: project_id |
get_project_activity | Read the attributable project timeline across human work, external MCP agents, builds, versions, feedback, and workspace pins. Actor kind is explicit; an external agent is never presented as the human account that authorized it. Inputs: project_id, limit, cursor |
get_project_agent_mode | Read the project-level autonomous coordination state derived from the canonical Living Plan, governed Agent, and exact Engine destination. Returns progress, current work, next eligible safe step, and the reason the project is running or nee Inputs: project_id |
get_project_context | Read one source-free operating packet: active version metadata, the latest explicitly selected observed project input, review attention, artifact index, work queue, and current activity cursor. Imported input is immutable evidence, not an A Inputs: project_id, include_governance_text, include_project_input_files |
get_project_discipline | Return derived direction, trade-off, evidence, and continuity status with active decisions, eval evidence, verifier definitions, and explicit permission boundaries. Status is computed from authoritative Project OS records, never editable ch Inputs: project_id |
get_project_engine_workspace | Read the privacy-safe Engine workspace attached to one project. Returns only opaque Engine/workspace identity, safe display metadata, live readiness, and a revision. Never returns source, paths, repository URLs, SSH hosts, tokens, or secret Inputs: project_id |
get_project_intelligence | Return the versioned frontier-product research dossier, six parallel lane states, evidence ledger, saturation audits, falsification, concepts, ranked outputs, integrity summary, connector visibility, and a deterministic operating brief. Mis Inputs: project_id |
get_project_mission | Return a bounded canonical Project Mission view, active Goal Contract, server-derived health, role capabilities, or a paginated goals, templates, scope-change, or history slice. Inputs: project_id, view, limit, cursor |
get_project_work_dispatch | Read the authoritative queued, claimed, running, approval-paused, or terminal state of one exact governed Project OS task dispatch. Returns bounded progress and lease evidence without prompts, credentials, source, paths, or private model tr Inputs: job_id, idempotency_key, assignment_id |
get_task_quality_gate | Return the current task-bound Quality Gate policy, freshness, deterministic check receipt, and attached findings. A pass never replaces required human visual or approval review. Inputs: assignment_id |
get_version_share_link | Read the durable sharing state and current URL for one exact saved version. Disabled shares return no URL. Inputs: project_id, version_id, page |
get_work_handoff | Return the current immutable context-handoff receipt, exact task lineage, and honestly labeled worker-reported or 2ools-forecast context signal. Inputs: assignment_id |
heartbeat_work_session, invite_project_member, list_approval_requests, list_artifact_approval_requests, list_artifacts, list_build_systems, list_connected_engines, list_project_agents, list_project_engineering_decisions, list_project_feedback, list_project_pins, list_projects, list_work_assignments, manage_project_discipline, manage_work_watchdog, prepare_artifact_download, prepare_artifact_upload, prepare_version_export, prepare_work_handoff, refine_project, refresh_project_cockpit, register_existing_project, reject_artifact_version, reject_version, remove_project_member, remove_project_pin, render_project_preview, resolve_project_feedback, review_project_mission, revoke_project_invite, revoke_version_share_link, run_project_agent, run_task_quality_gate, start_project_on_engine, submit_work_session, update_account_profile, update_living_plan, update_project_intelligence, update_project_member_role, update_project_mission, wait_for_project_activity
Every block below points at https://2ools.app/mcp. Pick your client and copy.
claude mcp add --transport http 2ools https://2ools.app/mcp
{
"mcpServers": {
"2ools": {
"command": "npx",
"args": ["-y", "mcp-remote", "https://2ools.app/mcp"]
}
}
}{
"mcpServers": {
"2ools": {
"url": "https://2ools.app/mcp"
}
}
}{
"servers": {
"2ools": {
"type": "http",
"url": "https://2ools.app/mcp"
}
}
}{
"context_servers": {
"2ools": {
"url": "https://2ools.app/mcp"
}
}
}{
"mcpServers": {
"2ools": {
"serverUrl": "https://2ools.app/mcp"
}
}
}{
"mcpServers": {
"2ools": {
"url": "https://2ools.app/mcp"
}
}
}name: 2ools
version: 0.0.1
schema: v1
mcpServers:
- name: 2ools
type: streamable-http
url: https://2ools.app/mcp{
"mcpServers": {
"2ools": {
"httpUrl": "https://2ools.app/mcp"
}
}
}{
"mcpServers": {
"2ools": {
"type": "http",
"url": "https://2ools.app/mcp"
}
}
}{
"mcpServers": {
"2ools": {
"url": "https://2ools.app/mcp"
}
}
}goose://extension?url=https%3A%2F%2F2ools.app%2Fmcp&type=streamable_http&id=2ools&name=2ools
It answered our last check on 17 October 2026 in 255 ms. Over 10 checks since 4 September 2026 it answered 10. Status here comes from Neuronto's own probes, not from the publisher.
Yes. It is published by 2ools.app and served from 2ools.app, the vendor's own domain: https://2ools.app/mcp.
81, as returned by the server's own tools/list on 9 September 2026: act_on_project_os_task, activate_project, add_project_feedback, add_project_pin, advance_project_agent_mode, answer_project_engineering_decision, approve_artifact_version, approve_version, and 73 more.
It answered our last check on 17 October 2026 in 255 ms. Over 10 checks since 4 September 2026 it answered 10.
Put the server under mcpServers in ~/.cursor/mcp.json with the URL https://2ools.app/mcp. The exact JSON is above, with the same setup for Claude Code, Claude Desktop, VS Code, Windsurf, Zed, Gemini CLI and the rest.
It listed its tools to an anonymous client, so reading the tool list needs no key. Individual tools can still ask for credentials in their own inputs.
Publisher: app.2ools. Endpoint host: 2ools.app. ARD identifier: urn:air:app.2ools:mcp:mcp.
First indexed 31 August 2026. The tools are exactly what the server returned; nothing on this page
is inferred from its name. Ranking in Neuronto search is never for sale.