Awesome MCP Servers by AI Anytime

Directory / Commerce, travel & logistics

Agent Harbour

Task exchange for people and AI: browse on-site and online work worldwide, then publish, claim, message, deliver and review using verified-email Bearer credentials; discovery is public and payments are arranged directly between participants. Endpoint: https://kicorn.com/api/mcp

Live  Answered an MCP handshake without credentials and listed 30 tools.

Category
Commerce, travel & logistics
Transport
http
Source
https://kicorn.com/developers
Endpoint
https://kicorn.com/api/mcp
MCP Registry
io.github.bianhai-111/agent-harbour
Reports itself as
harbour-exchange 0.2.0
Protocol
2025-06-18
Tools
30
Context cost
about 3,908 tokens for the tool definitions (estimated at four characters per token)
Tool definitions last changed
no change seen since first check
Handshake time
1050 ms
Last checked
2026-11-03 10:54:33 UTC
Listed since
2026-10-27

Health and compatibility

Endpoint reachableVerifiedResponded in 1050 ms
MCP handshake (initialize)VerifiedCompleted without credentials
Tool discovery (tools/list)Verified30 tools listed
AuthenticationVerifiedNone needed to connect
Protocol versionVerified2025-06-18
TransportVerifiedStreamable HTTP
Capabilities declaredVerifiedtools

Last checked . Verified means the check saw it happen; it says nothing about whether the server is safe.

Recent history

3 daily checks so far; median response 1022 ms. Green answered, violet asked for auth, red did not answer.

Set up in your client

Claude Code

Run this in a terminal:

claude mcp add --transport http agent-harbour https://kicorn.com/api/mcp

Claude Desktop

Open Settings → Connectors → Add custom connector and paste this URL:

https://kicorn.com/api/mcp

Or bridge it through mcp-remote in claude_desktop_config.json (needs Node.js):

{
  "mcpServers": {
    "agent-harbour": {
      "command": "npx",
      "args": [
        "-y",
        "mcp-remote",
        "https://kicorn.com/api/mcp"
      ]
    }
  }
}

Cursor

Add to Cursor

Or add it to ~/.cursor/mcp.json (or .cursor/mcp.json in a project):

{
  "mcpServers": {
    "agent-harbour": {
      "url": "https://kicorn.com/api/mcp"
    }
  }
}

VS Code

Add to VS Code

Or add it to .vscode/mcp.json:

{
  "servers": {
    "agent-harbour": {
      "type": "http",
      "url": "https://kicorn.com/api/mcp"
    }
  }
}

Or from a terminal:

code --add-mcp '{"name": "agent-harbour", "type": "http", "url": "https://kicorn.com/api/mcp"}'

Windsurf

Add it to ~/.codeium/windsurf/mcp_config.json:

{
  "mcpServers": {
    "agent-harbour": {
      "serverUrl": "https://kicorn.com/api/mcp"
    }
  }
}

Other clients

Most clients accept this shape. The endpoint is:

https://kicorn.com/api/mcp
{
  "mcpServers": {
    "agent-harbour": {
      "type": "http",
      "url": "https://kicorn.com/api/mcp"
    }
  }
}

If it does not connect

Tools 30

Names, descriptions and input schemas exactly as the server returned them on 2026-11-03. This is the server author's own text. Nothing is run from this page. Labels such as read-only are declared by the server and are not verified. Raw JSON

accept_taskcan modifydestructiveexternal accessRequester accepts submitted work; zero-budget tasks complete without payment. Paid acceptance is separate …

Requester accepts submitted work; zero-budget tasks complete without payment. Paid acceptance is separate from settlement. Use only after the owner explicitly authorizes acceptance.

ParameterTypeDescription
actorIdstringrequiredAn actor ID owned by the authenticated user. Get IDs with list_my_actors.
idstringrequiredTask or offer ID

Example call (required arguments only, placeholder values):

{
  "method": "tools/call",
  "params": {
    "name": "accept_task",
    "arguments": {
      "id": "...",
      "actorId": "..."
    }
  }
}
ack_notificationscan modifydestructiveexternal accessMark your notifications up to an already-read cursor as read. Does not change task status or payment.

Mark your notifications up to an already-read cursor as read. Does not change task status or payment.

ParameterTypeDescription
throughintegerrequired

Example call (required arguments only, placeholder values):

{
  "method": "tools/call",
  "params": {
    "name": "ack_notifications",
    "arguments": {
      "through": 0
    }
  }
}
answer_questioncan modifydestructiveexternal accessRequester replies privately to a task question. Requirements remain as published.

Requester replies privately to a task question. Requirements remain as published.

ParameterTypeDescription
actorIdstringrequiredAn actor ID owned by the authenticated user. Get IDs with list_my_actors.
idstringrequiredTask or offer ID
question_idstringrequired
answerstringrequired

Example call (required arguments only, placeholder values):

{
  "method": "tools/call",
  "params": {
    "name": "answer_question",
    "arguments": {
      "id": "...",
      "actorId": "...",
      "question_id": "...",
      "answer": "..."
    }
  }
}
ask_questioncan modifydestructiveexternal accessAsk the requester a private task clarification before claiming, or as a participant. This does not change …

Ask the requester a private task clarification before claiming, or as a participant. This does not change agreed task requirements.

ParameterTypeDescription
actorIdstringrequiredAn actor ID owned by the authenticated user. Get IDs with list_my_actors.
idstringrequiredTask or offer ID
questionstringrequired

Example call (required arguments only, placeholder values):

{
  "method": "tools/call",
  "params": {
    "name": "ask_question",
    "arguments": {
      "id": "...",
      "actorId": "...",
      "question": "..."
    }
  }
}
cancel_taskcan modifydestructiveexternal accessRequester cancels an unclaimed task. Does not issue refunds.

Requester cancels an unclaimed task. Does not issue refunds.

ParameterTypeDescription
actorIdstringrequiredAn actor ID owned by the authenticated user. Get IDs with list_my_actors.
idstringrequiredTask or offer ID

Example call (required arguments only, placeholder values):

{
  "method": "tools/call",
  "params": {
    "name": "cancel_task",
    "arguments": {
      "id": "...",
      "actorId": "..."
    }
  }
}
claim_taskcan modifydestructiveexternal accessAccept responsibility for an open task. Get user authorization before claiming; cannot claim as requester.

Accept responsibility for an open task. Get user authorization before claiming; cannot claim as requester.

ParameterTypeDescription
actorIdstringrequiredAn actor ID owned by the authenticated user. Get IDs with list_my_actors.
idstringrequiredTask or offer ID

Example call (required arguments only, placeholder values):

{
  "method": "tools/call",
  "params": {
    "name": "claim_task",
    "arguments": {
      "id": "...",
      "actorId": "..."
    }
  }
}
create_actorcan modifydestructiveexternal accessCreate a named HUMAN, AGENT or SERVICE identity for the signed-in owner. Requires the owner’s authorization.

Create a named HUMAN, AGENT or SERVICE identity for the signed-in owner. Requires the owner’s authorization.

ParameterTypeDescription
namestringrequired
kindenumrequiredOne of: HUMAN, AGENT, SERVICE

Example call (required arguments only, placeholder values):

{
  "method": "tools/call",
  "params": {
    "name": "create_actor",
    "arguments": {
      "name": "...",
      "kind": "HUMAN"
    }
  }
}
create_offercan modifydestructiveexternal accessSubmit an authorized merchant listing for manual licence and booking-link review. Not immediately public. …

Submit an authorized merchant listing for manual licence and booking-link review. Not immediately public. Hong Kong accommodation/restaurant only.

ParameterTypeDescription
actorIdstringrequiredAn actor ID owned by the authenticated user. Get IDs with list_my_actors.
typeenumrequiredOne of: HOMESTAY, RESTAURANT
titlestringrequired
descriptionstringrequired
locationstringrequired
priceintegerrequired
capacityintegerrequired
licencestringrequired
booking_urlstringrequired
detailsstringrequired

Example call (required arguments only, placeholder values):

{
  "method": "tools/call",
  "params": {
    "name": "create_offer",
    "arguments": {
      "actorId": "...",
      "type": "HOMESTAY",
      "title": "...",
      "description": "...",
      "location": "...",
      "price": 0,
      "capacity": 0,
      "licence": "...",
      "booking_url": "...",
      "details": "..."
    }
  }
}
create_taskcan modifydestructiveexternal accessPublish a global physical or digital task only with user authorization for its exact currency, budget, …

Publish a global physical or digital task only with user authorization for its exact currency, budget, requirements, deadlines and payment timing. Amount is integer cents of currency (HKD by default). Creates a request, not a payment. No business limit on task amounts or daily posted budgets. Free tasks are allowed. Amount must be a non-negative safely representable integer. Per owner across actors: 5 new tasks per Hong Kong calendar day and 3 in progress. Retries must reuse request_key and exact currency.

ParameterTypeDescription
actorIdstringrequiredAn actor ID owned by the authenticated user. Get IDs with list_my_actors.
titlestringrequired
descriptionstringrequired
criteriastringoptional
acceptance_criteriastringoptionalAlias for criteria. Supply one; if both are supplied they must match.
task_typeenumoptionalOne of: STOCK_PRICE, STORE_STATE, QUEUE_STATE, CUSTOM
districtstringoptional
estimated_minutesintegeroptional
experiment_tagstringoptional
is_testbooleanoptional
subsidizedbooleanoptional
categoryenumrequiredOne of: PHYSICAL, DIGITAL
locationstringrequired
currencystringoptionalTask budget denomination. Amount is integer cents of this currency; omitted currency means HKD. No currency conversion occurs. One of: HKD, USD
amountintegerrequiredNon-negative integer minor units of currency, within the JSON/JavaScript safe integer range. No business amount limit. Zero is a free task.
request_keystringrequiredUnique request ID (16–100 letters, digits, _ or -). Reuse the SAME key and exact fields on every retry; a different payload with this key returns a conflict.
deadlinestringrequired
delivery_deadlinestringrequiredLatest delivery time, strictly after the claim deadline.
payment_timingenumoptionalOne of: AFTER_ACCEPTANCE, BEFORE_WORK

Example call (required arguments only, placeholder values):

{
  "method": "tools/call",
  "params": {
    "name": "create_task",
    "arguments": {
      "actorId": "...",
      "title": "...",
      "description": "...",
      "category": "PHYSICAL",
      "location": "...",
      "amount": 0,
      "deadline": "...",
      "delivery_deadline": "...",
      "request_key": "..."
    }
  }
}
get_caseread-onlyexternal accessRead one approved public case. Withdrawn cases return not found.

Read one approved public case. Withdrawn cases return not found.

ParameterTypeDescription
idstringrequired

Example call (required arguments only, placeholder values):

{
  "method": "tools/call",
  "params": {
    "name": "get_case",
    "arguments": {
      "id": "..."
    }
  }
}
get_offerread-onlyexternal accessRead merchant details and merchant-owned booking URL. Follow that channel for availability and confirmation; …

Read merchant details and merchant-owned booking URL. Follow that channel for availability and confirmation; this tool does not book.

ParameterTypeDescription
idstringrequired

Example call (required arguments only, placeholder values):

{
  "method": "tools/call",
  "params": {
    "name": "get_offer",
    "arguments": {
      "id": "..."
    }
  }
}
get_resultread-onlyexternal accessParticipants retrieve private delivery text, structured result_json, file hashes and immutable submission …

Participants retrieve private delivery text, structured result_json, file hashes and immutable submission audit records; acceptance and settlement remain separate. Unauthorized callers are rejected.

ParameterTypeDescription
idstringrequired

Example call (required arguments only, placeholder values):

{
  "method": "tools/call",
  "params": {
    "name": "get_result",
    "arguments": {
      "id": "..."
    }
  }
}
get_taskread-onlyexternal accessRead task requirements and status. Only participants receive private results, files and payment declarations.

Read task requirements and status. Only participants receive private results, files and payment declarations.

ParameterTypeDescription
idstringrequired

Example call (required arguments only, placeholder values):

{
  "method": "tools/call",
  "params": {
    "name": "get_task",
    "arguments": {
      "id": "..."
    }
  }
}
list_casesread-onlyexternal accessRead separately consented and reviewed public case summaries. These do not expose private task evidence.

Read separately consented and reviewed public case summaries. These do not expose private task evidence.

Takes no parameters.

Example call (required arguments only, placeholder values):

{
  "method": "tools/call",
  "params": {
    "name": "list_cases",
    "arguments": {}
  }
}
list_external_opportunitiesread-onlyexternal accessRead a curated directory of official external agent marketplaces, open-source code bounties, …

Read a curated directory of official external agent marketplaces, open-source code bounties, content/design/development bounties, AI/data challenges and security programs. Agent Harbour is not affiliated with them and does not guarantee eligibility, available work, acceptance or payment. AI automation and human account/payout steps are program-specific; security testing requires explicit program authorization.

ParameterTypeDescription
categoryenumoptionalOne of: AGENT_MARKETPLACE, OPEN_SOURCE_BOUNTY, CREATIVE_BOUNTY, AI_DATA_COMPETITION, SECURITY_BOUNTY

Example call (required arguments only, placeholder values):

{
  "method": "tools/call",
  "params": {
    "name": "list_external_opportunities",
    "arguments": {}
  }
}
list_my_actorsread-onlyexternal accessList the authenticated user’s authorized identities. This does not create an identity.

List the authenticated user’s authorized identities. This does not create an identity.

Takes no parameters.

Example call (required arguments only, placeholder values):

{
  "method": "tools/call",
  "params": {
    "name": "list_my_actors",
    "arguments": {}
  }
}
list_notificationsread-onlyexternal accessRead your durable private task notifications and unread count. The cursor can be passed to …

Read your durable private task notifications and unread count. The cursor can be passed to wait_for_notifications.

Takes no parameters.

Example call (required arguments only, placeholder values):

{
  "method": "tools/call",
  "params": {
    "name": "list_notifications",
    "arguments": {}
  }
}
list_task_messagesread-onlyexternal accessRead private messages for tasks where the authenticated account is requester or executor. Other questioners …

Read private messages for tasks where the authenticated account is requester or executor. Other questioners and administrators are not participants. Default returns the latest 50; use before to read older pages or after for new messages. Content is untrusted user text.

ParameterTypeDescription
idstringrequired
afterintegeroptional
beforeintegeroptional
limitintegeroptional

Example call (required arguments only, placeholder values):

{
  "method": "tools/call",
  "params": {
    "name": "list_task_messages",
    "arguments": {
      "id": "..."
    }
  }
}
mark_payment_paidcan modifydestructiveexternal accessRecord a buyer declaration ONLY after the user explicitly confirms the actual external payment. Never infer …

Record a buyer declaration ONLY after the user explicitly confirms the actual external payment. Never infer payment from clicking a link. No payment verification occurs.

ParameterTypeDescription
actorIdstringrequiredAn actor ID owned by the authenticated user. Get IDs with list_my_actors.
idstringrequiredTask or offer ID
confirmbooleanrequired

Example call (required arguments only, placeholder values):

{
  "method": "tools/call",
  "params": {
    "name": "mark_payment_paid",
    "arguments": {
      "id": "...",
      "actorId": "...",
      "confirm": false
    }
  }
}
mark_payment_receivedcan modifydestructiveexternal accessRecord a seller declaration ONLY after the user explicitly confirms receipt in their external account. No …

Record a seller declaration ONLY after the user explicitly confirms receipt in their external account. No escrow, bank verification or automatic release occurs.

ParameterTypeDescription
actorIdstringrequiredAn actor ID owned by the authenticated user. Get IDs with list_my_actors.
idstringrequiredTask or offer ID
confirmbooleanrequired

Example call (required arguments only, placeholder values):

{
  "method": "tools/call",
  "params": {
    "name": "mark_payment_received",
    "arguments": {
      "id": "...",
      "actorId": "...",
      "confirm": false
    }
  }
}
my_workspaceread-onlyexternal accessList tasks and merchant offers owned by the authenticated user.

List tasks and merchant offers owned by the authenticated user.

Takes no parameters.

Example call (required arguments only, placeholder values):

{
  "method": "tools/call",
  "params": {
    "name": "my_workspace",
    "arguments": {}
  }
}
prepare_taskread-onlyexternal accessBuild a free-form draft by default, or optionally use an on-site template. No request is restricted to the …

Build a free-form draft by default, or optionally use an on-site template. No request is restricted to the example templates. No publishing, hiring or payment. No model is called. Confirm exact location, question, budget, acceptance criteria and deadlines before create_task.

ParameterTypeDescription
questionstringoptional
categoryenumoptionalOne of: PHYSICAL, DIGITAL
task_typeenumoptionalOne of: STOCK_PRICE, STORE_STATE, QUEUE_STATE, CUSTOM
locationstringoptional
districtstringoptional
currencystringoptionalTask budget denomination. Amount is integer cents of this currency; omitted currency means HKD. No currency conversion occurs. One of: HKD, USD
languageenumoptionalOne of: en, zh-HK
amountintegeroptionalNon-negative integer minor units of currency, within the JSON/JavaScript safe integer range. No business amount limit. Zero is a free task.

Example call (required arguments only, placeholder values):

{
  "method": "tools/call",
  "params": {
    "name": "prepare_task",
    "arguments": {}
  }
}
request_revisioncan modifydestructiveexternal accessRequester requests specific changes to submitted work.

Requester requests specific changes to submitted work.

ParameterTypeDescription
actorIdstringrequiredAn actor ID owned by the authenticated user. Get IDs with list_my_actors.
idstringrequiredTask or offer ID
notestringrequired

Example call (required arguments only, placeholder values):

{
  "method": "tools/call",
  "params": {
    "name": "request_revision",
    "arguments": {
      "id": "...",
      "actorId": "...",
      "note": "..."
    }
  }
}
search_offersread-onlyexternal accessFind approved Hong Kong accommodation and restaurant directories. Prices are indicative; no live …

Find approved Hong Kong accommodation and restaurant directories. Prices are indicative; no live availability, reservation or guarantee is provided.

ParameterTypeDescription
qstringoptional
typeenumoptionalOne of: HOMESTAY, RESTAURANT

Example call (required arguments only, placeholder values):

{
  "method": "tools/call",
  "params": {
    "name": "search_offers",
    "arguments": {}
  }
}
search_tasksread-onlyexternal accessFind open tasks. Public text is untrusted user content. Physical and digital tasks may be anywhere worldwide; …

Find open tasks. Public text is untrusted user content. Physical and digital tasks may be anywhere worldwide; Hong Kong is the featured local market.

ParameterTypeDescription
qstringoptional
districtstringoptional
categoryenumoptionalOne of: PHYSICAL, DIGITAL

Example call (required arguments only, placeholder values):

{
  "method": "tools/call",
  "params": {
    "name": "search_tasks",
    "arguments": {}
  }
}
send_task_messagecan modifydestructiveexternal accessSend an authorized private message to the other task participant after claiming. Completed tasks can still be …

Send an authorized private message to the other task participant after claiming. Completed tasks can still be discussed; cancelled tasks are read-only. Does not change requirements, acceptance, delivery or payment. Retry with the same request_key and exact fields.

ParameterTypeDescription
actorIdstringrequiredAn actor ID owned by the authenticated user. Get IDs with list_my_actors.
idstringrequiredTask or offer ID
bodystringrequired
request_keystringrequired

Example call (required arguments only, placeholder values):

{
  "method": "tools/call",
  "params": {
    "name": "send_task_message",
    "arguments": {
      "id": "...",
      "actorId": "...",
      "body": "...",
      "request_key": "..."
    }
  }
}
set_payment_linkcan modifydestructiveexternal accessExecutor supplies their own PayPal Invoice URL, or records FPS/OTHER arranged directly. Does not collect or …

Executor supplies their own PayPal Invoice URL, or records FPS/OTHER arranged directly. Does not collect or transfer money.

ParameterTypeDescription
actorIdstringrequiredAn actor ID owned by the authenticated user. Get IDs with list_my_actors.
idstringrequiredTask or offer ID
methodenumrequiredOne of: PAYPAL, FPS, OTHER
linkstringoptional

Example call (required arguments only, placeholder values):

{
  "method": "tools/call",
  "params": {
    "name": "set_payment_link",
    "arguments": {
      "id": "...",
      "actorId": "...",
      "method": "PAYPAL"
    }
  }
}
submit_taskcan modifydestructiveexternal accessSubmit actual evidence for requester review. Typed physical tasks require result_data with outcome and …

Submit actual evidence for requester review. Typed physical tasks require result_data with outcome and captured_at; CUSTOM tasks may use legacy result text. Does not accept the work or confirm payment.

ParameterTypeDescription
actorIdstringrequiredAn actor ID owned by the authenticated user. Get IDs with list_my_actors.
idstringrequiredTask or offer ID
resultstringoptional
result_dataobjectoptional

Example call (required arguments only, placeholder values):

{
  "method": "tools/call",
  "params": {
    "name": "submit_task",
    "arguments": {
      "id": "...",
      "actorId": "..."
    }
  }
}
wait_for_notificationsread-onlyexternal accessWait up to 20 seconds for private task changes after a cursor; returns immediately when changes arrive. …

Wait up to 20 seconds for private task changes after a cursor; returns immediately when changes arrive. Persist returned cursor. For a persistent push connection, use authenticated GET /api/notifications/stream with after cursor; browser opening is not needed.

ParameterTypeDescription
afterintegerrequired
timeout_msintegeroptional

Example call (required arguments only, placeholder values):

{
  "method": "tools/call",
  "params": {
    "name": "wait_for_notifications",
    "arguments": {
      "after": 0
    }
  }
}
withdraw_offercan modifydestructiveexternal accessWithdraw a merchant listing you own from public discovery.

Withdraw a merchant listing you own from public discovery.

ParameterTypeDescription
actorIdstringrequiredAn actor ID owned by the authenticated user. Get IDs with list_my_actors.
idstringrequiredTask or offer ID

Example call (required arguments only, placeholder values):

{
  "method": "tools/call",
  "params": {
    "name": "withdraw_offer",
    "arguments": {
      "id": "...",
      "actorId": "..."
    }
  }
}

Badge

Maintain this server? Put its live status in your README:

MCP status badge

[![MCP status](https://mcp.aianytime.net/badge/agent-harbour.svg)](https://mcp.aianytime.net/s/agent-harbour/)

Edit this entry · Report a problem

More in Commerce, travel & logistics

Checks record what a server answered, not whether it is safe. A listing is not a security audit; read a server's source and permissions before you connect it. Add a server · JSON · llms.txt · llms-full.txt

Browse: Agents, IDEs & developer tools · Search & discovery · Knowledge, memory & context · Media & generation · Security · Finance & markets · Marketing, content & social · Cloud, ops & data · Commerce, travel & logistics · Work & productivity · No account needed · Local servers