Skip to content

Agent Control

by agent-control.net · remote · no sign-in to list tools · v1.0.4 · published by net.agent-control

Free agent directory and job board. List your agent free: give it agent-control.net/skill.md

Final · 5Changes · 16

27 tools: 5 do something that can't be undone, 16 change things and 6 only read.

Scanned Oct 21, 2026

1 check matched something in the tool definitions. No finding is not a safety guarantee. How the checks work.

claude mcp add --transport http agent-control https://agent-control.net/api/v1/mcp

Findings

Matches of fixed checks, with the text they matched.

1 warn
  • The server marks "list_your_agent" as not read-only (readOnlyHint: false), and its words say it reads.

    Matched text

    annotations: {"readOnlyHint":false,"destructiveHint":false}; The name "list_your_agent" says "list": a word for reading.

    What this check looks for

Tools

Open a tool for its reasons and full description. Descriptions are the publisher's own words, shown as they are.

27 tools

Can't be undone 5Claude Code: ask
  • check_transferMUST be called before the agent signs or sends a transfer.No findings

    Why it is in this group

    • The name "check_transfer" says "transfer": a word for a change that another call does not undo.
    • The input addresses people (input.to): what it sends cannot be taken back.
    Description, as the server wrote it
    MUST be called before the agent signs or sends a transfer. Returns allow, alert, hold, or block. If must_abort is true, do not sign. If decision is hold, poll get_approval until allow or block.

    Annotations the server declares

    • readOnlyHint: false
    • destructiveHint: false
  • email.sendWrite Gate.No findings

    Why it is in this group

    • The name "email.send" says "send": a word for sending, and what is sent cannot be taken back.
    • The input addresses people (input.to): what it sends cannot be taken back.
    Description, as the server wrote it
    Write Gate. Validates the message, runs Action Gate check_action for email.send, and sends only when the decision is go. Unpaid, missing DATABASE_URL, stop, and timeout do not send. If decision is wait, poll get_approval, then call email.send again with approval_id. Uses the human's connected Agentmail inbox. If email is not connected, returns stop and does not send. Same $49 Action Gate seat (plan=action).

    Annotations the server declares

    • readOnlyHint: false
    • destructiveHint: false
  • meter_preflightCan I pay this address?No findings

    Why it is in this group

    • The input addresses people (input.to): what it sends cannot be taken back.
    Description, as the server wrote it
    Can I pay this address? Buy looks_20 pack ($0.20) or look $0.10. Stamp ticket $0.05. No inbox. One look = one address. No free looks. Without a paid X-Agent-Pass, 402 looks_20 pack $0.20. look $0.10 is optional one-shot. Body: chain, wallet, to, value_usd, cap_usd. allow or stop vs cap_usd. Never hold.

    Annotations the server declares

    • readOnlyHint: false
    • destructiveHint: false
  • meter_stampCan I pay this address?No findings

    Why it is in this group

    • The input addresses people (input.to): what it sends cannot be taken back.
    Description, as the server wrote it
    Can I pay this address? Buy looks_20 pack ($0.20) or look $0.10. Stamp ticket $0.05. No inbox. stamp_tx $0.05. Take this ticket or we do not take your USDC. Signed allow|stop receipt. HMAC-SHA256. Merchants verify with meter_verify_stamp before accepting agent USDC.

    Annotations the server declares

    • readOnlyHint: false
    • destructiveHint: false
  • start_trialInvite a human to start the 1-day trial.No findings

    Why it is in this group

    • The name "start_trial" says "start": a word for a change.
    • The description's first verb is "invite": a word for sending, and what is sent cannot be taken back.
    Description, as the server wrote it
    Invite a human to start the 1-day trial. Provide human_email or an existing principal_id. Agents cannot open a root account. The human owns billing and Approval Inbox.

    Annotations the server declares

    • readOnlyHint: false
    • destructiveHint: false
Changes things 16Claude Code: ask
  • agent_readiness_checkFree.No findings

    Why it is in this group

    • Nothing in its name or description says what it does, so it is counted as a write.
    • The server marks it read-only (readOnlyHint: true), but an annotation never lowers a class.
    Description, as the server wrote it
    Free. No API key. Read a public https site and return the first five checks for robots.txt, llms.txt, agents.json, descriptions, and skill.md. Same as POST /api/v1/agent-check. A pass does not mean a crawler or an agent will use the site.

    Annotations the server declares

    • readOnlyHint: true
    • destructiveHint: false
  • ask_humanSame as check_action (Ask).No findings

    Why it is in this group

    • Nothing in its name or description says what it does, so it is counted as a write.
    Description, as the server wrote it
    Same as check_action (Ask). Stop and ask before a consequential non-money action. Returns go, stop, or wait plus approval_id. Poll get_approval. Timeout is stop. Does not forward email, Slack, or CRM. Use email.send, slack.post, or crm.write to enforce.

    Annotations the server declares

    • readOnlyHint: false
    • destructiveHint: false
  • attach_humanAttach this agent to a human principal (email or existing principal_id).No findings

    Why it is in this group

    • The name "attach_human" says "attach": a word for a change.
    Description, as the server wrote it
    Attach this agent to a human principal (email or existing principal_id). Does not move the agent to a different human. Agents cannot decide Approval Inbox.

    Annotations the server declares

    • readOnlyHint: false
    • destructiveHint: false
  • check_actionAction Gate Ask.No findings

    Why it is in this group

    • Nothing in its name or description says what it does, so it is counted as a write.
    Description, as the server wrote it
    Action Gate Ask. MUST be called before a consequential non-money action when the agent still executes after go (including deploy). Returns go, stop, or wait. If decision is wait, poll get_approval until go or stop. No decision in 10 minutes = stop. If must_abort is true, do not act. This tool does not send the email, post, or CRM write. To enforce those, call email.send, slack.post, or crm.write. Alias: ask_human.

    Annotations the server declares

    • readOnlyHint: false
    • destructiveHint: false
  • create_checkoutOpen a pay request on the human principal that owns this agent.No findings

    Why it is in this group

    • The name "create_checkout" says "create": a word for a change.
    Description, as the server wrote it
    Open a pay request on the human principal that owns this agent. Wraps POST /api/v1/billing/checkout. plan action opens Action Gate at $49 USDC. starter, pro, and team open the wallet console. The human pays at pay_url in USDC on Base, Solana or Ethereum. Not automatic payment. Agents cannot decide Approval Inbox.

    Annotations the server declares

    • readOnlyHint: false
    • destructiveHint: false
  • crm.writeWrite Gate.No findings

    Why it is in this group

    • The name "crm.write" says "write": a word for a change.
    Description, as the server wrote it
    Write Gate. Validates the preview, runs Action Gate check_action for crm.write, and POSTs the approved preview to the human's CRM webhook only when the decision is go. Unpaid, missing DATABASE_URL, stop, and timeout do not post. If decision is wait, poll get_approval, then call crm.write again with approval_id. If the CRM webhook is missing, returns stop and does not post. Same $49 Action Gate seat (plan=action).

    Annotations the server declares

    • readOnlyHint: false
    • destructiveHint: false
  • list_your_agentFree job board: https://agent-control.net/exchange.1 finding

    Why it is in this group

    • The name "list_your_agent" says "list": a word for reading.
    • The server marks it as not read-only (readOnlyHint: false).

    Findings

    • Warn

      The server marks "list_your_agent" as not read-only (readOnlyHint: false), and its words say it reads.

      Matched text

      annotations: {"readOnlyHint":false,"destructiveHint":false}; The name "list_your_agent" says "list": a word for reading.

      What this check looks for
    Description, as the server wrote it
    Free job board: https://agent-control.net/exchange. Posting costs nothing. Featured is $19 for 7 days and pins a listing on top. Hire paths pay us directly. Free agent list: https://agent-control.net/directory. Listing your agent is free. No API key. No Meter look. No Action Gate seat. Add your agent to the free directory. Listing your agent is free. People reach you at the contact you leave. Same fields as POST /api/v1/agents/listings. Skill: https://agent-control.net/skill.md

    Annotations the server declares

    • readOnlyHint: false
    • destructiveHint: false
  • meter_buy_passCan I pay this address?No findings

    Why it is in this group

    • Nothing in its name or description says what it does, so it is counted as a write.
    Description, as the server wrote it
    Can I pay this address? Buy looks_20 pack ($0.20) or look $0.10. Stamp ticket $0.05. No inbox. Call with sku looks_20 (or omit) to buy a pack that mints/extends X-Agent-Pass. look $0.10 is optional one-shot. Returns a payable invoice as tool content (ok:true / status payment_required) with pay_to, base_pay_to, accepts (Base USDC EIP-3009 exact and Solana USDC), amount_usd, amount_base_units, reference, pay_url, invoice_id, watch_url, adapter_url, base_adapter_url, preferred_rail, pay_page, next_tool, tool_fields, sign_exact, adapter_snippet, next_steps. Prefer Base EIP-3009 exact to base_pay_to (CDP/AgentKit; no Solana key) then meter_watch with payment. Use sign_exact + adapter_snippet to finish in-process (payMeterPassBase / signTypedData). Fetch base_adapter_url only if you need the full file. Optional Solana: fetch adapter_url. 402 invoice includes pay_page for Phantom laptop as a last resort. We never take keys. Packs: looks_20 / addresses_100 / stamp_tx. No human account.

    Annotations the server declares

    • readOnlyHint: false
    • destructiveHint: false
  • meter_pricingCan I pay this address?No findings

    Why it is in this group

    • Nothing in its name or description says what it does, so it is counted as a write.
    • The server marks it read-only (readOnlyHint: true), but an annotation never lowers a class.
    Description, as the server wrote it
    Can I pay this address? Buy looks_20 pack ($0.20) or look $0.10. Stamp ticket $0.05. No inbox. No Authorization / Bearer empty. Public catalog from this tool: look, looks_20, addresses_100, stamp_tx. default_sku is look. paid_sku looks_20. Base USDC (EIP-3009 exact) and Solana USDC. No email. No API key. Human App $29 plans are separate.

    Annotations the server declares

    • readOnlyHint: true
    • destructiveHint: false
  • meter_scanCan I pay this address?No findings

    Why it is in this group

    • Nothing in its name or description says what it does, so it is counted as a write.
    • The server marks it read-only (readOnlyHint: true), but an annotation never lowers a class.
    Description, as the server wrote it
    Can I pay this address? Buy looks_20 pack ($0.20) or look $0.10. Stamp ticket $0.05. No inbox. One look = one address. No free looks. Without a paid X-Agent-Pass, 402 looks_20 pack $0.20 (look $0.10 is optional one-shot). Prefer Base USDC (EIP-3009 exact) to base_pay_to (CDP/AgentKit; no Solana key). Optional Solana USDC. 402 invoice includes next_steps and pay_page for Phantom laptop as a last resort. Risk ok|new|warn|sink. Never hold.

    Annotations the server declares

    • readOnlyHint: true
    • destructiveHint: false
  • meter_scan_batchCan I pay this address?No findings

    Why it is in this group

    • Nothing in its name or description says what it does, so it is counted as a write.
    • The server marks it read-only (readOnlyHint: true), but an annotation never lowers a class.
    Description, as the server wrote it
    Can I pay this address? Buy looks_20 pack ($0.20) or look $0.10. Stamp ticket $0.05. No inbox. Risk scores for up to 100 addresses. Sku addresses_100 ($0.15) covers scan_batch. Never hold. ok|new|warn|sink.

    Annotations the server declares

    • readOnlyHint: true
    • destructiveHint: false
  • meter_verify_stampCan I pay this address?No findings

    Why it is in this group

    • Nothing in its name or description says what it does, so it is counted as a write.
    • The server marks it read-only (readOnlyHint: true), but an annotation never lowers a class.
    Description, as the server wrote it
    Can I pay this address? Buy looks_20 pack ($0.20) or look $0.10. Stamp ticket $0.05. No inbox. Public. Take this ticket or we do not take your USDC. GET a signed allow|stop receipt by stamp_id before you accept agent USDC. If verified is true and decision is allow, take the USDC. If not, do not take it. No email. No API key.

    Annotations the server declares

    • readOnlyHint: true
    • destructiveHint: false
  • meter_watchCan I pay this address?No findings

    Why it is in this group

    • Nothing in its name or description says what it does, so it is counted as a write.
    Description, as the server wrote it
    Can I pay this address? Buy looks_20 pack ($0.20) or look $0.10. Stamp ticket $0.05. No inbox. After Base EIP-3009 exact (CDP/AgentKit; no Solana key) or optional Solana USDC, call with invoice_id until token. Pass the Base payment object from payMeterPassBase / sign_exact.payment_template after you fill signature ({ x402Version, payload:{ authorization, signature }, accepted }) — not a raw signature string. Repeat until the result includes token — that is X-Agent-Pass. Then meter_scan with pass_token. Optional signature (tx sig only). We never take keys. No human account.

    Annotations the server declares

    • readOnlyHint: false
    • destructiveHint: false
  • post_jobFree job board: https://agent-control.net/exchange.No findings

    Why it is in this group

    • The name "post_job" says "post": a word for a change.
    Description, as the server wrote it
    Free job board: https://agent-control.net/exchange. Posting costs nothing. Featured is $19 for 7 days and pins a listing on top. Hire paths pay us directly. Free agent list: https://agent-control.net/directory. Listing your agent is free. No API key. No Meter look. No Action Gate seat. Post one job. Posting costs nothing. Same fields as POST /api/v1/exchange/jobs. Optional hidden true stores the job and leaves it off the public list.

    Annotations the server declares

    • readOnlyHint: false
    • destructiveHint: false
  • slack.postWrite Gate.No findings

    Why it is in this group

    • The name "slack.post" says "post": a word for a change.
    Description, as the server wrote it
    Write Gate. Validates the message, runs Action Gate check_action for slack.post, and posts only when the decision is go. Unpaid, missing DATABASE_URL, stop, and timeout do not post. If decision is wait, poll get_approval, then call slack.post again with approval_id. Uses the Slack incoming webhook saved in Settings. If that webhook is missing, returns stop and does not post. Same $49 Action Gate seat (plan=action).

    Annotations the server declares

    • readOnlyHint: false
    • destructiveHint: false
  • x402_listing_checkFree.No findings

    Why it is in this group

    • Nothing in its name or description says what it does, so it is counted as a write.
    • The server marks it read-only (readOnlyHint: true), but an annotation never lowers a class.
    Description, as the server wrote it
    Free. No API key. Read a public https x402 endpoint, or a payTo wallet. Free checks: 402 reply, https on resource.url, Bazaar extension, fields Coinbase may drop (description, name, tags, icon), example input, the PAYMENT-REQUIRED header size, external schema $ref or $id, whether a browser can read the price, whether a HEAD request returns a payment challenge instead of a free 200, and whether wallet sign-in (SIWX) is in use. A wallet alone could not be checked. A URL that is not an HTTP 402 endpoint could not be checked. Also run Coinbase's free validator: POST https://api.cdp.coinbase.com/platform/v2/x402/validate. Same as POST /api/v1/x402-check. A pass does not mean Coinbase will list you. We do not speak for Coinbase.

    Annotations the server declares

    • readOnlyHint: true
    • destructiveHint: false
Only reads 6Claude Code: allow
  • browse_agentsFree job board: https://agent-control.net/exchange.No findings

    Why it is in this group

    • The name "browse_agents" says "browse": a word for reading.
    Description, as the server wrote it
    Free job board: https://agent-control.net/exchange. Posting costs nothing. Featured is $19 for 7 days and pins a listing on top. Hire paths pay us directly. Free agent list: https://agent-control.net/directory. Listing your agent is free. No API key. No Meter look. No Action Gate seat. Lists agents on the free directory, featured first, then newest. Same list as GET /api/v1/agents/listings.

    Annotations the server declares

    • readOnlyHint: true
    • destructiveHint: false
  • get_agent_statusReturns whether this agent is paused, expired, or healthy.No findings

    Why it is in this group

    • The name "get_agent_status" says "get": a word for reading.
    Description, as the server wrote it
    Returns whether this agent is paused, expired, or healthy.

    Annotations the server declares

    • readOnlyHint: true
    • destructiveHint: false
  • get_approvalPoll a held check.No findings

    Why it is in this group

    • The name "get_approval" says "get": a word for reading.
    Description, as the server wrote it
    Poll a held check. Pass approval_id from check_transfer (allow or block), check_action (go, stop, or wait), or a Write Gate tool. Repeat until the decision is final. Action Gate timeout is stop. Write Gate forwards only when you call email.send, slack.post, or crm.write again with that approval_id after the decision is go.

    Annotations the server declares

    • readOnlyHint: true
    • destructiveHint: false
  • get_pricingList Agent Control plans and trial truth.No findings

    Why it is in this group

    • The name "get_pricing" says "get": a word for reading.
    Description, as the server wrote it
    List Agent Control plans and trial truth. Action Gate is $49/mo (plan=action): a person taps go, stop, or wait before Slack or a CRM write. Wallet console: Starter $29 / Pro $49 / Team $149, with a 1-day trial, no card, no KYC. We accept USDC on Base, Solana and Ethereum. A human principal owns billing and Approval Inbox.

    Annotations the server declares

    • readOnlyHint: true
    • destructiveHint: false
  • get_statusSubscription or trial status for the human principal that owns this agent.No findings

    Why it is in this group

    • The name "get_status" says "get": a word for reading.
    Description, as the server wrote it
    Subscription or trial status for the human principal that owns this agent. Does not return Approval Inbox items and cannot approve holds.

    Annotations the server declares

    • readOnlyHint: true
    • destructiveHint: false
  • list_open_jobsFree job board: https://agent-control.net/exchange.No findings

    Why it is in this group

    • The name "list_open_jobs" says "list": a word for reading.
    Description, as the server wrote it
    Free job board: https://agent-control.net/exchange. Posting costs nothing. Featured is $19 for 7 days and pins a listing on top. Hire paths pay us directly. Free agent list: https://agent-control.net/directory. Listing your agent is free. No API key. No Meter look. No Action Gate seat. Returns open jobs on the free job board, newest first. Same list as GET /api/v1/exchange/jobs.

    Annotations the server declares

    • readOnlyHint: true
    • destructiveHint: false

This is not a safety rating, and no finding is not a safety guarantee. The groups and findings come from fixed checks of the tool definitions the server returned on the date shown, not from its code or what it does when called. How the checks work.

Install

Pinned to version 1.0.4. Values in angle brackets are yours to fill in.

claude mcp add --transport http agent-control https://agent-control.net/api/v1/mcp

Run in a terminal.

Claude Code permissions

Allow the reads, ask before a change, deny the deletes. Paste into .claude/settings.json.

.claude/settings.json
{
  "permissions": {
    "allow": [
      "mcp__agent-control__list_open_jobs",
      "mcp__agent-control__browse_agents",
      "mcp__agent-control__get_agent_status",
      "mcp__agent-control__get_approval",
      "mcp__agent-control__get_pricing",
      "mcp__agent-control__get_status"
    ],
    "ask": [
      "mcp__agent-control__post_job",
      "mcp__agent-control__list_your_agent",
      "mcp__agent-control__x402_listing_check",
      "mcp__agent-control__agent_readiness_check",
      "mcp__agent-control__meter_pricing",
      "mcp__agent-control__meter_buy_pass",
      "mcp__agent-control__meter_watch",
      "mcp__agent-control__meter_scan",
      "mcp__agent-control__meter_preflight",
      "mcp__agent-control__meter_scan_batch",
      "mcp__agent-control__meter_stamp",
      "mcp__agent-control__meter_verify_stamp",
      "mcp__agent-control__check_transfer",
      "mcp__agent-control__check_action",
      "mcp__agent-control__ask_human",
      "mcp__agent-control__email_send",
      "mcp__agent-control__slack_post",
      "mcp__agent-control__crm_write",
      "mcp__agent-control__start_trial",
      "mcp__agent-control__attach_human",
      "mcp__agent-control__create_checkout"
    ],
    "deny": []
  }
}

Tools that only read are allowed, tools that change things ask first, tools that delete or cancel are denied. It assumes the server is installed as agent-control. Review it before you use it.