Molt2Meet
Server Details
Dispatch real-world physical tasks to verified human operators. Escrow or direct-settlement.
- Status
- Healthy
- Last Tested
- Transport
- Streamable HTTP
- URL
- Repository
- molt2meet-org/examples
- GitHub Stars
- 0
Glama MCP Gateway
Connect through Glama MCP Gateway for full control over tool access and complete visibility into every call.
Full call logging
Every tool call is logged with complete inputs and outputs, so you can debug issues and audit what your agents are doing.
Tool access control
Enable or disable individual tools per connector, so you decide what your agents can and cannot do.
Managed credentials
Glama handles OAuth flows, token storage, and automatic rotation, so credentials never expire on your clients.
Usage analytics
See which tools your agents call, how often, and when, so you can understand usage patterns and catch anomalies.
Tool Definition Quality
Average 4.4/5 across 50 of 50 tools scored. Lowest: 3.4/5.
Multiple tools have overlapping or unclear boundaries, causing potential confusion. For example, 'approve_physical_task_completion' and 'approve_task_review' are both for approving tasks but differ by flow, while 'fund_task', 'fund_wallet', and 'checkout_wallet_deposit' all handle funding with subtle distinctions. Tools like 'get_task_events' and 'get_task_history' both provide task history, and 'cancel_physical_task' vs 'cancel_task_with_settlement' have unclear separation without careful reading.
Most tools follow a consistent verb_noun pattern (e.g., 'dispatch_physical_task', 'list_service_categories', 'get_wallet_balance'), which is predictable and readable. There are minor deviations like 'checkout_wallet_deposit' (verb_verb_noun) and 'test_task_webhook' (verb_noun_noun), but overall the naming is largely consistent across the set.
With 50 tools, the count is excessive for the server's purpose of dispatching and managing physical-world tasks. Many tools could be consolidated or omitted without losing functionality, such as multiple funding-related tools or overlapping task status retrieval methods. This bloated set increases complexity and cognitive load for agents.
The tool set provides comprehensive coverage for the domain, including task dispatch, funding, status tracking, approvals, disputes, and administrative functions. There are no obvious gaps; it supports full CRUD/lifecycle operations for tasks, wallets, and agent management, ensuring agents can handle all necessary workflows without dead ends.
Available Tools
54 toolsacknowledge_direct_settlement_taskAcknowledge Direct Settlement TaskIdempotentInspect
DIRECT SETTLEMENT FLOW ONLY. Agent confirms that the operator completed the work and that payment has been settled on-site (cash, pin, QR, Tikkie, etc.). The task must be a DirectSettlement task (SettlementMode='direct') and in Completed status. Transitions directly to Closed — no platform escrow, no fund release. For escrow tasks use approve_task_review instead.
| Name | Required | Description | Default |
|---|---|---|---|
| note | No | Optional note about the acknowledgement (free text) | |
| apiKey | Yes | Your API key (m2m_...) | |
| taskId | Yes | Task ID to acknowledge |
add_contact_methodAdd Contact MethodInspect
Add a notification channel for task status events (operator accepts, uploads proof, etc.). Use methodType 'webhook' with a URL or 'email' with an address. For webhooks: use configJson to configure how Molt2Meet authenticates to YOUR endpoint. Supported authType values: 'header' (sends authValue in authHeader, default Authorization), 'query_param' (appends authQueryParam=authValue to URL), 'basic' (sends authValue as user:pass in Authorization: Basic header). Example configJson for Bearer token: {"authType":"header","authHeader":"Authorization","authValue":"Bearer my-token"}. Example for query param: {"authType":"query_param","authQueryParam":"token","authValue":"my-secret"}. Requires: API key from register_agent. Next: dispatch_physical_task with webhookUrl for per-task events, or use this for account-wide notifications.
| Name | Required | Description | Default |
|---|---|---|---|
| apiKey | Yes | Your Molt2Meet API key | |
| endpoint | Yes | URL or address for the contact method | |
| priority | No | Priority (1 = primary, 2 = fallback, etc.) | |
| configJson | No | Optional: webhook auth config as JSON. Keys: authType (header|query_param|basic), authHeader (header name), authValue (token/secret), authQueryParam (param name) | |
| methodType | Yes | Contact method type: webhook, email, websocket, polling, mcp_callback |
add_service_interestAdd Service InterestInspect
Signal anticipated demand for a category of physical-world tasks in a region — WITHOUT dispatching a concrete task. Difference vs dispatch_physical_task: add_service_interest is a forecast/intent signal (no location, no execution). dispatch_physical_task creates a real task that operators will execute. Use this tool when you don't yet have a specific job but you know you will need this kind of task in this region. Mechanism: your service interest feeds into operator recruitment priority — categories and regions with the most agent demand are recruited for first. Similar in spirit to join_country_waitlist but at the category level instead of country level. Use cases: long-term planning (e.g. 'I will need 50 storefront verifications/week in Amsterdam'), pre-commitment to budgets, requesting capacity expansion before peak periods. Requires: API key from register_agent. Optional: use a serviceCategoryId from list_service_categories. Next: list_service_interests to verify, or dispatch_physical_task once you have a concrete task.
| Name | Required | Description | Default |
|---|---|---|---|
| apiKey | Yes | Your Molt2Meet API key | |
| region | Yes | Region where you need the service (e.g. 'Amsterdam', 'worldwide') | |
| priorityLevel | No | Optional: priority level (low, medium, high, critical) | |
| estimatedVolume | No | Optional: expected volume (e.g. 'daily', '10/week', '50/month') | |
| budgetIndication | No | Optional: budget per task (e.g. '5-25 USD') | |
| customDescription | No | Optional: describe what you need if no category fits | |
| serviceCategoryId | No | Optional: service category ID from list_service_categories |
add_task_reviewAdd Task ReviewInspect
Add a review/rating for a completed task. Rate the operator's work quality. This is separate from approve/reject — it records feedback. Requires authentication.
| Name | Required | Description | Default |
|---|---|---|---|
| apiKey | Yes | Your API key (m2m_...) | |
| rating | Yes | Rating 1-5 (1=poor, 5=excellent) | |
| taskId | Yes | Task ID to review | |
| comment | No | Optional comment about the work | |
| tagsJson | No | Optional tags as JSON string | |
| qualityScore | No | Optional quality score 1-5 | |
| professionalismScore | No | Optional professionalism score 1-5 |
approve_physical_task_completionApprove Task CompletionIdempotentInspect
Approve a completed task — SIMPLE FLOW ONLY. Precondition: the task was dispatched with publishImmediately=true (default) AND auto-funded from your wallet, i.e. you did NOT call request_task_quote/fund_task/publish_task (escrow flow). If you went through the escrow flow (any of those three tools), call approve_task_review instead — calling this on an escrow task returns an error with the correct tool to use. Mechanism: marks the task Completed and triggers the operator payout immediately. There is no review window for the simple flow. Task must be in ProofUploaded or UnderReview status. Requires: API key from register_agent. Next: monitor task.settled and task.closed via get_task_events — settlement happens automatically.
| Name | Required | Description | Default |
|---|---|---|---|
| apiKey | Yes | Your Molt2Meet API key | |
| taskId | Yes | The task ID to approve |
approve_rescheduleApprove RescheduleIdempotentInspect
Approve a reschedule request. Use this when an operator has requested a reschedule and you agree. Requires authentication.
| Name | Required | Description | Default |
|---|---|---|---|
| apiKey | Yes | Your API key (m2m_...) | |
| taskId | Yes | Task ID the reschedule belongs to | |
| rescheduleId | Yes | Reschedule request ID to approve |
approve_task_reviewApprove Task ReviewIdempotentInspect
ESCROW FLOW ONLY. For direct-settlement tasks (settlementMode='direct') use acknowledge_direct_settlement_task instead — this endpoint returns 400 with a pointer when called on a direct task. Approve a completed task after reviewing the proof. Triggers payout to the operator. The task must be in UnderReview status AND settlementMode='escrow'. Funds move from locked to earned. Requires authentication.
| Name | Required | Description | Default |
|---|---|---|---|
| apiKey | Yes | Your API key (m2m_...) | |
| taskId | Yes | Task ID to approve |
cancel_physical_taskCancel Physical TaskDestructiveIdempotentInspect
Cancel a dispatched physical-world task. Only tasks not yet completed or paid can be cancelled. Requires: API key from register_agent.
| Name | Required | Description | Default |
|---|---|---|---|
| apiKey | Yes | Your Molt2Meet API key | |
| reason | No | Optional: reason for cancellation | |
| taskId | Yes | The task ID to cancel |
cancel_task_with_settlementCancel Task With SettlementDestructiveIdempotentInspect
Cancel a task with proper financial settlement. Compensation to operator depends on task status (none before acceptance, partial after). Refund to agent for remaining amount. Requires authentication.
| Name | Required | Description | Default |
|---|---|---|---|
| apiKey | Yes | Your API key (m2m_...) | |
| taskId | Yes | Task ID to cancel | |
| cancellationReasonCodeRef | Yes | Cancellation reason code ref (1=AgentCancelled, 2=PlatformCancelled, 3=DuplicateTask, 4=InvalidTaskDefinition, 5=FraudRisk, 6=OperatorNoShow, 7=ExternalCondition) |
checkout_wallet_depositCheckout Wallet DepositInspect
Create a hosted checkout session (e.g. Stripe) to deposit funds into your wallet. Returns a checkout URL where you or your user can complete the payment. After successful payment, the wallet is automatically credited. Use this before fund_task if your wallet balance is insufficient. Default currency resolution when omitted: (1) explicit currency honored, (2) single existing wallet used, (3) otherwise the currency of your most recently created task. No stale USD default. Requires authentication.
| Name | Required | Description | Default |
|---|---|---|---|
| amount | Yes | Amount to deposit | |
| apiKey | Yes | Your API key (m2m_...) | |
| locale | No | Optional locale slug for the PSP-hosted checkout UI and receipt. Supported: en, nl, de, fr, es, es-419, pt, pt-BR, it, pl. Overrides the agent's profile locale — use when the payer speaks a different language than your agent. | |
| currency | No | Currency code (USD, EUR, etc.). Omit for smart default based on your existing wallet(s) and most-recent task currency. | |
| cancelUrl | No | Optional: URL to redirect to if payment is cancelled | |
| successUrl | No | Optional: URL to redirect to after successful payment |
check_task_fundingCheck Task FundingIdempotentInspect
ESCROW FLOW ONLY. Direct-settlement tasks never have a PSP payment to check; do not call this on settlementMode='direct' tasks. Check if a PSP payment has been received for a quoted escrow task and automatically fund it. Use this after paying via checkout URL or bank transfer to verify the payment arrived. Syncs with the payment provider and funds the task if sufficient balance is available. Requires authentication.
| Name | Required | Description | Default |
|---|---|---|---|
| apiKey | Yes | Your API key (m2m_...) | |
| taskId | Yes | Task ID to check funding for |
create_api_keyCreate API KeyInspect
Generate a new API key for your agent. The full plaintext key (m2m_...) is returned ONCE — store it securely immediately; it cannot be retrieved later (we only keep its hash). Use keyName to identify the key's purpose (e.g. 'production', 'staging'). Multiple keys can be active simultaneously for zero-downtime rotation. Requires: an existing API key from register_agent. Next: switch your integration to the new key, then revoke_api_key on the old one.
| Name | Required | Description | Default |
|---|---|---|---|
| apiKey | Yes | Your existing API key (m2m_...) | |
| keyName | Yes | Human-readable name for the new key (e.g. 'production', 'staging') |
dispatch_physical_taskDispatch Physical TaskIdempotentInspect
Primary tool. Dispatch a human operator to perform a physical-world task at a specific location and return verifiable proof (photos, GPS, timestamps, report). Structured fields (use these — don't hide them in the free-text description): serviceCategoryId (improves operator matching — call list_service_categories first to pick one), deadlineAt (absolute cutoff), timeWindowStart/End (schedule range), estimatedDurationMinutes, priority, proofRequirementsJson (machine-readable proof constraints). Coverage check: before calling this for a new region, call list_countries to verify the target country is in launch phase 'Live'. For non-Live countries (Closed/UnderEvaluation/Roadmap/Alpha/Beta), call join_country_waitlist instead — your task will fail to find an operator otherwise. Agent waitlist signups directly influence which countries we prioritize for next launch, so joining the waitlist actively brings your target country closer to Live, and you will be notified when it goes Live. Execution is asynchronous — you receive a taskId immediately, then track via get_physical_task_details or provide webhookUrl for signed status events. Auto-publish behavior: publishImmediately=true (default) means the platform tries to fund from your wallet AND publish in one call. If wallet balance is sufficient → task goes straight to Published. If wallet is empty/insufficient → the task is STILL saved (as Draft) and the response's next_actions guide you through request_task_quote → fund_task → publish_task. The response includes autoPublishDeferred=true + autoPublishDeferredReason when this fallback kicks in. You never lose the task to a wallet-balance error. Scheduling: 4 execution modes control timing. 'asap' (default) = execute immediately. 'time_window' = operator picks when within your window. 'scheduled' = exact time ± tolerance (e.g. delivery at 13:00 ±15min). 'operator_schedule' = operator commits to a time within your broad window. If executionMode is omitted, it is auto-detected: requestedTime → scheduled, timeWindowStart+End → time_window, otherwise → asap. All times are yyyyMMddHHmmss (e.g. 20260321130000 = 21 Mar 2026 13:00). IMPORTANT: timestamps are wallclock times LOCAL to the task location — not UTC, not ISO 8601. A delivery at '13:00' in Amsterdam and one at '13:00' in São Paulo both use the same format, each interpreted in their own local time. Do not convert to UTC; do not render in a different timezone. For deadline-based scheduling the relative field (quoteExpiresInSeconds, etc.) is timezone-safe and preferred. Idempotency: always pass a stable requestId (GUID, sha256 of your input, etc.) for safe retries. On network timeouts, re-send the EXACT same requestId — the platform returns the existing task (same taskId, same status) instead of creating a duplicate. The requestId is scoped per agent and is honored indefinitely (no expiry window), so reuse for the same logical intent is always safe. Different requestId = different task, even with otherwise identical payload. workflowId groups related tasks for reporting/correlation but does NOT provide idempotency. Webhook payloads use snake_case field names (task_id, event_type, occurred_at), not camelCase. Proof requirements: each ServiceCategory has a default ProofRequirementProfile that auto-validates proof (min photos, GPS radius, timestamp window, checklist). You can layer custom instructions via the proofRequirementsJson parameter (machine-readable, shown to the operator as guidance). Supported keys for proofRequirementsJson: minPhotos (int), maxPhotos (int), requireGps (bool), requireGpsWithinRadiusMeters (int), requireTimestampWithinMinutes (int), requireReportMinLength (int), requireVideo (bool), checklistItems (string[]). Send as a JSON-encoded string. Example: "{"minPhotos":4,"requireGps":true,"requireGpsWithinRadiusMeters":100,"checklistItems":["Exterior wide shot","Entrance detail"]}". The full schema reference is in /.well-known/molt2meet.json under proof_package.proof_requirements_schema. Use get_task_proofs to review submitted proof with thumbnails. Requires: API key from register_agent. Next: get_physical_task_details to check progress, or approve_physical_task_completion when proof is uploaded.
| Name | Required | Description | Default |
|---|---|---|---|
| title | Yes | Short task title (e.g. 'Mow lawn at 24 rue de la filature') | |
| apiKey | Yes | Your Molt2Meet API key | |
| acceptBy | No | Optional: deadline by which an operator must accept the task (yyyyMMddHHmmss). If no one accepts before this time, the task expires. Different from deadlineAt which is the completion deadline. | |
| isPublic | No | Optional: whether the task is publicly listed so any matching operator can accept (true, default) or privately routed (false). Use false when you plan to assign a specific operator via a future private-dispatch feature. | |
| priority | No | Optional: priority — low, normal, high, urgent (default normal) | |
| maxBudget | No | Optional: maximum budget you're willing to spend (in payoutCurrency). If null, defaults to payoutAmount + platform fee. Only used to cap total cost for cases where fees or add-ons might push higher. | |
| requestId | No | Optional but strongly recommended for retry safety: unique idempotency key (GUID or sha256 of your logical intent). Re-sending the SAME requestId returns the existing task instead of creating a duplicate — safe to use on network timeouts or unclear responses. Scoped per agent, honored indefinitely. Different requestId = different task. | |
| agentNotes | No | Optional: additional notes for the operator | |
| completeBy | No | Optional: deadline by which the operator must complete the task (yyyyMMddHHmmss). Distinct from deadlineAt — completeBy is specifically the finish-line; deadlineAt is a general cutoff for the whole task. | |
| deadlineAt | No | Optional: absolute deadline by which the task must be FINISHED — not started, finished (yyyyMMddHHmmss, wallclock LOCAL to the task location). Operators see this as a hard cutoff: if proof has not been uploaded and accepted before this time, the task can expire. For a 2-hour task that must be done by 18:00, set deadlineAt=20260426180000 and the operator will plan backward from it. Use timeWindowStart/End if you want to constrain WHEN the operator may work (not when they must finish). | |
| webhookUrl | No | Optional: webhook URL for task status events. IMPORTANT: if you provide a webhookUrl, also provide webhookConfigJson so Molt2Meet can authenticate to your endpoint. Without it, webhook calls will be unsigned/unauthenticated. | |
| workflowId | No | Optional: workflow ID to group related tasks | |
| description | Yes | Detailed instructions for the operator | |
| pricingType | No | Optional: pricing type — fixed, hourly, or negotiable (default fixed) | |
| payoutAmount | Yes | Required: payout amount for the operator — must be within the currency's allowed range. Call list_currencies to see exact minPayoutAmount / maxPayoutAmount per currency (PSP minimum × Settlement.MinChargeMultiplier / × MaxChargeMultiplier). Total cost to you = payoutAmount + platform fee (typically ~5%). Use request_task_quote to see the exact total before funding. | |
| bufferMinutes | No | Optional: buffer in minutes outside the window for flexible time_window mode | |
| executionMode | No | Optional: execution mode — asap, time_window, scheduled, or operator_schedule. Auto-detected if omitted: requestedTime→scheduled, timeWindow→time_window, else→asap. operator_schedule must be explicit. | |
| requestedTime | No | Optional: requested exact time (yyyyMMddHHmmss) for scheduled mode. System creates window = requestedTime ± toleranceMinutes. | |
| timeWindowEnd | No | Optional: latest start time (yyyyMMddHHmmss) for time_window/operator_schedule mode | |
| payoutCurrency | No | Required: ISO 4217 currency code. Match the task-location's country: list_countries returns each country's currencyCode (NL→EUR, US→USD, GB→GBP, BR→BRL, etc.) — pass that exact value here. Currency must be supported (call list_currencies). Mismatch with country is allowed but discouraged: operators are paid in this currency and may convert at their own cost. | |
| settlementMode | No | Optional: settlement mode — 'escrow' (default): the platform holds funds until the task is settled. 'direct': the platform is matchmaker only and the client pays the operator directly on-site (cash, pin, QR, Tikkie, etc.). Use 'direct' for scenarios where the client is physically present (e.g. car wash, lawn mowing, on-the-spot services). Direct-settlement tasks count against your subscription plan's monthly limit; escrow tasks do not. | |
| skillsRequired | No | Optional: skills the operator needs to have (free text, e.g. 'licensed electrician', 'notary', 'fluent in Dutch'). Shown to matching operators. | |
| locationAddress | Yes | Physical address where the task must be performed | |
| timeWindowStart | No | Optional: earliest start time (yyyyMMddHHmmss) for time_window/operator_schedule mode | |
| isFlexibleWindow | No | Optional: if true, operator may start slightly outside the time window (with bufferMinutes tolerance). Default false. | |
| locationLatitude | No | Optional: GPS latitude | |
| locationRadiusKm | No | Optional: maximum radius in km within which the task location must fall. Used for matching operators by proximity. Leave null for platform default. | |
| toleranceMinutes | No | Optional: tolerance in minutes around requestedTime for scheduled mode (required when requestedTime is set) | |
| equipmentRequired | No | Optional: equipment the operator needs to bring (free text, e.g. 'ladder', 'measuring tape', 'DSLR camera'). Shown to matching operators. | |
| locationLongitude | No | Optional: GPS longitude | |
| rescheduleAllowed | No | Optional: if true, agent or operator can request rescheduling after creation. Default true. | |
| serviceCategoryId | No | Optional: service category ID from list_service_categories | |
| webhookConfigJson | No | Optional but recommended when webhookUrl is set: JSON config for webhook authentication. Without this, webhooks are sent without auth headers. Supported authType values: 'header' (default, sends token in a header), 'query_param' (appends to URL), 'hmac' (HMAC-SHA256 signature). Examples: {"authType":"header","authHeader":"Authorization","authValue":"Bearer my-token"} or {"authType":"query_param","authQueryParam":"token","authValue":"my-secret"} | |
| publishImmediately | No | Optional, default true: attempt to publish the task right after creation. If your wallet has sufficient balance, the task goes straight to Published (auto-funded from wallet). If your wallet is empty/insufficient, the task is STILL saved — as Draft — and the response's next_actions guide you through request_task_quote → fund_task → publish_task. In that case the response also includes autoPublishDeferred=true with autoPublishDeferredReason explaining why. Set to false only if you want to review/edit the Draft before any funding happens. | |
| descriptionLanguage | No | Optional: BCP 47 / IETF language tag of title, description and agentNotes (e.g. 'nl', 'en', 'de', 'nl-BE', 'pt-BR'). Helps operators in border regions self-select tasks they can read. Omit when unsure — operators will treat it as 'language unspecified'. | |
| allowedTimeSlotsJson | No | Optional: JSON array of allowed time slots for operator_schedule mode. Each slot: {"slotId":"s1","start":20260323090000,"end":20260323120000}. Operator must pick one slot when accepting. | |
| proofRequirementsJson | No | Optional: machine-readable proof requirements as a JSON string (on top of the ServiceCategory's default profile). Supported keys: minPhotos (int), maxPhotos (int), requireGps (bool), requireGpsWithinRadiusMeters (int), requireTimestampWithinMinutes (int), requireReportMinLength (int), requireVideo (bool), checklistItems (string[]). Example: {"minPhotos":4,"requireGps":true,"requireGpsWithinRadiusMeters":100,"checklistItems":["Exterior wide shot","Entrance detail"]}. Full schema reference: /.well-known/molt2meet.json under proof_package.proof_requirements_schema. | |
| estimatedDurationMinutes | No | Optional: estimated duration in minutes |
dispute_direct_settlement_taskDispute Direct Settlement TaskInspect
DIRECT SETTLEMENT FLOW ONLY. Agent raises a dispute about the work or the on-site payment. Task transitions from Completed → Disputed. Platform may mediate but has no financial leverage (no escrow to reallocate). For escrow disputes use the standard dispute flow.
| Name | Required | Description | Default |
|---|---|---|---|
| apiKey | Yes | Your API key (m2m_...) | |
| reason | Yes | Reason for the dispute (required) | |
| taskId | Yes | Task ID to dispute |
fund_taskFund TaskIdempotentInspect
ESCROW FLOW ONLY. Direct-settlement tasks never get funded — the client pays the operator directly on-site. Calling this on a direct-settlement task returns 400. Fund a quoted task using wallet balance or PSP payment — second step of the escrow funding flow. Precondition: task must be in Quoted status AND settlementMode='escrow'. If not, call request_task_quote first. Two funding methods: 'wallet' (instant, requires sufficient available balance) or 'psp' (returns a hosted checkout URL — payment must be completed by your principal, then the task auto-funds). IMPORTANT — money flow: the wallet is always the single source of truth for your balance. PSP payments follow a two-step path: (1) Stripe/PSP credits your wallet with the paid amount, (2) the amount is locked from your wallet onto the task. This means if the task is cancelled BEFORE an operator accepts, the money stays in your wallet for future tasks — it does not auto-refund to your card. For wallet funding the flow is simpler: the amount is debited from wallet balance and locked on the task in a single step. The check_task_funding response exposes this via a fundingTrace array (e.g. ["psp_payment_received","wallet_credited","task_locked"]). Mechanism: the funded amount (totalAgentCost from the quote) is reserved and locked from your wallet. Locked funds remain in escrow until you approve the task, when they move to the operator. Fallback for wallet fundingMethod with insufficient balance: switch to 'psp', or call checkout_wallet_deposit / get_bank_transfer_details to top up first. The response's nextActions array always shows the appropriate next step. Idempotent: calling again on an already-funded task is safe — it detects the existing funding and returns the same checkout URL for psp. Next: publish_task after wallet funding. After psp funding, the task is auto-funded when the payment webhook arrives — call check_task_funding to poll if no webhook is configured. Response field 'chargedAmount' is what the PSP charges (payout + agent platform fee). The legacy 'grossAmount' field carries the same value and will be removed in v2 — use 'chargedAmount'. This is distinct from the quote response where 'grossAmount' means the operator payout before fees (that is also exposed there as 'operatorPayoutAmount'). Requires authentication.
| Name | Required | Description | Default |
|---|---|---|---|
| apiKey | Yes | Your API key (m2m_...) | |
| locale | No | Optional (psp only): locale slug for the PSP-hosted checkout UI and receipt. Supported: en, nl, de, fr, es, es-419, pt, pt-BR, it, pl. Use this when the payer speaks a different language than your agent's profile locale — e.g. pass 'pt-BR' if the URL will be opened by a Brazilian end-user. Defaults to the agent's profile locale, then to browser auto-detect. | |
| taskId | Yes | Task ID to fund | |
| cancelUrl | No | Optional (psp only): URL to redirect to when the payer cancels or closes the hosted checkout. Without this, cancellation falls back to the platform default. | |
| returnUrl | No | Optional (psp only): generic return URL used by some PSPs when success/cancel are not distinguished. Most flows should use successUrl + cancelUrl instead. | |
| successUrl | No | Optional (psp only): URL to redirect to after successful payment. Defaults to a hosted success page on the Molt2Meet domain. | |
| fundingMethod | Yes | Funding method: 'wallet' (pay from wallet balance) or 'psp' (pay via secure payment provider) |
fund_walletFund WalletInspect
Add funds to your wallet via secure payment provider. Returns a checkout URL where you or your user can complete the payment. After successful payment, the wallet is automatically credited. Default currency resolution when omitted: (1) explicit currency honored, (2) single existing wallet used, (3) otherwise the currency of your most recently created task. If none available → error asking you to pass currency explicitly. No stale USD default. Requires authentication.
| Name | Required | Description | Default |
|---|---|---|---|
| amount | Yes | Amount to deposit | |
| apiKey | Yes | Your API key (m2m_...) | |
| locale | No | Optional locale slug for the PSP-hosted checkout UI and receipt. Supported: en, nl, de, fr, es, es-419, pt, pt-BR, it, pl. Overrides the agent's profile locale — use when the payer speaks a different language than your agent. Defaults to the agent's profile locale, then to browser auto-detect. | |
| currency | No | Currency code (USD, EUR, etc.). Omit for smart default based on existing wallets / recent tasks. | |
| successUrl | No | Return URL after PSP payment |
get_agent_profileGet Agent ProfileRead-onlyIdempotentInspect
Retrieve your profile and status. Requires: API key from register_agent.
| Name | Required | Description | Default |
|---|---|---|---|
| apiKey | Yes | Your Molt2Meet API key (starts with m2m_) |
get_bank_transfer_detailsGet Bank Transfer DetailsRead-onlyIdempotentInspect
Get IBAN bank transfer details for funding your wallet. Each agent has a unique IBAN. Transfer money to this IBAN and your wallet will be automatically credited once the transfer is received. SEPA transfers typically take 1-3 business days. This is an alternative to PSP checkout for wallet funding. Default currency resolution when omitted: (1) explicit currency honored, (2) single existing wallet used, (3) otherwise the currency of your most recently created task. Requires authentication.
| Name | Required | Description | Default |
|---|---|---|---|
| apiKey | Yes | Your API key (m2m_...) | |
| locale | No | Optional locale slug for the PSP customer's preferred language (en, nl, de, fr, es, es-419, pt, pt-BR, it, pl). Used for Stripe email notifications tied to this customer profile. Defaults to the agent's profile locale. | |
| currency | No | Currency code (USD, EUR, etc.). Omit for smart default based on your existing wallet(s) and most-recent task currency. |
get_decision_requestsGet Decision RequestsRead-onlyIdempotentInspect
Get pending decision requests for a task. Decision requests are questions from the platform or operator that require your input. Mechanism: decision requests are BLOCKING — the task cannot progress to its next status until you resolve every pending decision. The operator is waiting on your answer. Examples: operator needs more budget, location is inaccessible (try alternative entrance?), operator wants to reschedule, ambiguous instructions need clarification. Trigger: you receive a task.decision_requested webhook event and/or you see the count in get_pending_actions.decisionRequests.count. Response includes a nextActions array with one resolve_decision_request action per unresolved decision, pre-filled with the decisionId and questionCode. Requires authentication. Next: resolve_decision_request with your answer (the decision becomes resolvedAt and the task continues).
| Name | Required | Description | Default |
|---|---|---|---|
| apiKey | Yes | Your API key (m2m_...) | |
| taskId | Yes | Task ID to get decisions for |
get_legal_documentsGet Legal DocumentsRead-onlyIdempotentInspect
Get all active legal documents an agent must accept on registration. The list of required document types is configurable via the AgentTermsDocumentTypes application setting — typically includes Terms and Conditions, Privacy Policy, Acceptable Use Policy, Agent Platform Terms, and Trust and Safety. Each document includes its type reference, name, version, effective date, and full markdown content. Call this before register_agent so you know what the agent is accepting when setting acceptedTerms=true. No authentication required.
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
get_pending_actionsGet Pending ActionsRead-onlyIdempotentInspect
Check if you have any pending actions in a single call. Returns: tasks needing review/funding/publishing, open decision requests from operators, support tickets, wallet summary, and webhook health. Use this to efficiently poll for work instead of calling multiple endpoints. Requires: API key.
| Name | Required | Description | Default |
|---|---|---|---|
| apiKey | Yes | Your Molt2Meet API key (starts with m2m_) |
get_physical_task_detailsGet Physical Task DetailsRead-onlyIdempotentInspect
Get full details of a physical-world task including operator status, proof, timestamps, and pending decision requests. Response also includes SLA countdowns (expectedCompletionInSeconds, deadlineInSeconds, timeWindowEndInSeconds) for timezone-safe polling. Optional: includeEvents=true to inline the status event history (saves a round-trip to get_task_events). Optional: includePolicyText=true to embed the platform policy text in the response (otherwise it's available via /.well-known/molt2meet.json and register_agent). Requires: API key from register_agent. Next: approve_physical_task_completion when status is Completed or UnderReview, or cancel_physical_task if needed.
| Name | Required | Description | Default |
|---|---|---|---|
| apiKey | Yes | Your Molt2Meet API key | |
| taskId | Yes | The task ID to retrieve | |
| includeEvents | No | Optional: include the full status event history inline (default false) | |
| includePolicyText | No | Optional: embed the platform policy text in the response (default false) |
get_support_requestsGet Support RequestsRead-onlyIdempotentInspect
List your support requests, complaints, and recommendations. Optionally filter by type or status. Returns request IDs, subjects, statuses, and timestamps.
| Name | Required | Description | Default |
|---|---|---|---|
| type | No | Filter by type: support, complaint, recommendation, billing_issue, technical_incident, policy_question | |
| apiKey | Yes | Your API key (m2m_...) | |
| status | No | Filter by status: open, in_progress, waiting_for_agent, resolved, closed |
get_task_eventsGet Task EventsRead-onlyIdempotentInspect
Poll for task status changes. Returns status history entries after the given sequence number. Each event includes structured actor info (changedByActorType = agent|operator|system|platform, changedByActorId) for audit-trail. For operator-triggered transitions (Accepted, EnRoute, Arrived, InProgress, Completed, ProofSubmitted, Released), the event includes a 'location' object {lat, lng, accuracy, source} captured at the moment of the action — this is the same data the ProofValidationService uses for anti-fraud location-trail checks. Use after=lastEventId for incremental polling; pass after=0 for all events. Requires authentication.
| Name | Required | Description | Default |
|---|---|---|---|
| after | No | Optional: return events after this history ID (0 for all) | |
| apiKey | Yes | Your API key (m2m_...) | |
| taskId | Yes | Task ID to poll events for |
get_task_historyGet Task HistoryRead-onlyIdempotentInspect
Get the full status history of a task. Shows all status transitions with timestamps and reasons. Useful for understanding the task lifecycle progression. Requires authentication.
| Name | Required | Description | Default |
|---|---|---|---|
| apiKey | Yes | Your API key (m2m_...) | |
| taskId | Yes | Task ID to get history for |
get_task_proofsGet Task ProofsRead-onlyIdempotentInspect
Get all proof items submitted by the operator for a task. Returns metadata, GPS stamps, and validation results. Three levels of proof content: (1) default returns metadata + hasThumbnail flags (lightweight), (2) set includeThumbnails=true to include all thumbnailBase64 inline (~5-15KB each), (3) REST endpoint GET .../proofs/{proofItemId}/thumbnail for a single thumbnail as binary JPEG, (4) REST endpoint GET .../proofs/{proofItemId}/content?format=raw for full-resolution binary download. nextActions are context-aware: when proof items exist, review/approve/reject actions are suggested automatically. Requires authentication.
| Name | Required | Description | Default |
|---|---|---|---|
| apiKey | Yes | Your API key (m2m_...) | |
| taskId | Yes | Task ID to get proofs for | |
| includeThumbnails | No | Optional: set to true to include thumbnailBase64 in the response (default false). Thumbnails are ~5-15KB each. |
get_waitlist_statusGet Waitlist StatusRead-onlyIdempotentInspect
Check your position on the Molt2Meet waitlist, including the country you are waitlisted for (null = global pre-launch waitlist). Requires: API key from register_agent.
| Name | Required | Description | Default |
|---|---|---|---|
| apiKey | Yes | Your Molt2Meet API key |
get_wallet_balanceGet Wallet BalanceRead-onlyIdempotentInspect
Get your wallet balance for a specific currency. Default currency resolution when omitted: (1) if you pass currency explicitly it's honored, (2) if you have exactly one wallet that one is used, (3) otherwise the currency of your most recently created task. No stale USD default. Returns four numbers — understand them before funding a task: totalFunded = lifetime credit ever added to this wallet (gross deposit history). pendingBalance = funds the platform expects from in-flight PSP payments / bank transfers but has not yet confirmed (e.g. checkout in progress, IBAN deposit unreconciled). reservedBalance = funds earmarked for tasks that are quoted but not yet fully funded (soft hold). lockedBalance = funds in escrow for active tasks (Funded → ProofUploaded → UnderReview); released to the operator on approve, refunded on reject/cancel. availableBalance = totalFunded − reservedBalance − lockedBalance − pendingBalance — this is what you can spend on new tasks RIGHT NOW. The response also includes a 'locks' array breaking down lockedBalance into per-task entries (taskId, taskTitle, taskStatus, lockedAmount, lockedAt) so you know exactly which tasks are holding your funds. Use this before fund_task to verify you have sufficient available funds. For all currencies at once, use list_wallets. Requires authentication.
| Name | Required | Description | Default |
|---|---|---|---|
| apiKey | Yes | Your API key (m2m_...) | |
| currency | No | Currency code (USD, EUR, etc.). Omit for smart default based on your wallets and most-recent task currency. |
get_wallet_transactionsGet Wallet TransactionsRead-onlyIdempotentInspect
Get your wallet transaction history. Shows all ledger entries with running balance. Optionally filter by task ID. Default currency resolution: (1) explicit currency honored, (2) single existing wallet used, (3) otherwise the currency of your most recently created task. No stale USD default. Requires authentication.
| Name | Required | Description | Default |
|---|---|---|---|
| apiKey | Yes | Your API key (m2m_...) | |
| taskId | No | Optional: filter transactions for a specific task | |
| currency | No | Currency code (USD, EUR, etc.). Omit for smart default based on existing wallets / recent tasks. |
join_country_waitlistJoin Country WaitlistIdempotentInspect
Join the waitlist for a country that is not yet live on Molt2Meet (launch phase Closed, Roadmap, Alpha, or Beta). Your signup directly influences which countries we prioritize for next launch — agent demand is the primary signal we use to decide where to recruit operators next. You will be notified when the country becomes Live so you can dispatch tasks there. Use list_countries first to see available countries and their phase. Idempotent: calling again with a different country updates your country preference (one country per agent). Requires: API key from register_agent. Next: get_waitlist_status to check your position.
| Name | Required | Description | Default |
|---|---|---|---|
| apiKey | Yes | Your Molt2Meet API key | |
| countryIsoCode | Yes | ISO 3166-1 country code (e.g. 'BR', 'PY', 'DE'). Must exist in list_countries. The country must NOT already be Live — for live countries you can dispatch tasks directly via dispatch_physical_task. |
list_countriesList CountriesRead-onlyIdempotentInspect
List all countries with their current launch phase on Molt2Meet. Returns ISO code, name, flag, default currency, Stripe support, launch phase (Closed/UnderEvaluation/Roadmap/Alpha/Beta/Live) and expected launch date. Use this BEFORE dispatch_physical_task to (1) verify your target country is in phase 'Live' and (2) read its currencyCode — pass that value as payoutCurrency on dispatch (NL→EUR, US→USD, GB→GBP, etc.) so operators are paid in the local currency. Only Live countries can execute tasks. If your target country is in Closed/UnderEvaluation/Roadmap/Alpha/Beta phase, do NOT dispatch — instead call join_country_waitlist with the country's isoCode. Agent waitlist signups directly influence which countries we prioritize for next launch, so joining the waitlist actively brings your target country closer to going Live. No authentication required.
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
list_currenciesList CurrenciesRead-onlyIdempotentInspect
List supported (Stripe-compatible) ISO 4217 currencies for use as payoutCurrency. Default: only currencies used by currently-Live countries (typically a handful) — pass includeAll=true for the full Stripe-supported list (~130 entries). Returns code (EUR, USD, GBP), name, symbol, decimal places, zero-decimal flag, and the actual minPayoutAmount / maxPayoutAmount allowed for tasks (PSP minimum × Settlement.MinChargeMultiplier / × MaxChargeMultiplier). Use minPayoutAmount as the floor when setting dispatch_physical_task.payoutAmount. No authentication required.
| Name | Required | Description | Default |
|---|---|---|---|
| includeAll | No | Optional: true to return all ~130 Stripe-supported currencies; false/omit returns only currencies used by currently-Live countries (default, much shorter response). |
list_localesList LocalesRead-onlyIdempotentInspect
List locales supported by the Molt2Meet platform. Returns the URL slug (e.g. 'en', 'nl', 'pt-BR') you pass as the 'locale' field on register_agent, plus the BCP 47 culture name, native-language display name, and which locale is the platform default. No authentication required. Use this before register_agent if you want to set a persistent language for payment pages and future localized responses.
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
list_physical_tasksList My Physical TasksRead-onlyIdempotentInspect
List all your dispatched physical-world tasks with current status. Use this to poll for progress if you did not provide a webhookUrl. Statuses: Draft → Published → Accepted → InProgress → Completed → UnderReview. Requires: API key from register_agent. Next: get_physical_task_details for full details on a specific task.
| Name | Required | Description | Default |
|---|---|---|---|
| apiKey | Yes | Your Molt2Meet API key |
list_reschedule_requestsList Reschedule RequestsRead-onlyIdempotentInspect
List all reschedule requests for a task. Shows pending, approved, and rejected requests. Requires authentication.
| Name | Required | Description | Default |
|---|---|---|---|
| apiKey | Yes | Your API key (m2m_...) | |
| taskId | Yes | Task ID to list reschedules for |
list_service_capabilitiesList Service CapabilitiesRead-onlyIdempotentInspect
List detailed execution options with pricing, duration, and proof types for physical-world tasks. Omit categoryId to get ALL capabilities across every category in one response — useful for semantic search by name/description when you are not sure which category fits. Pass a categoryId (from list_service_categories) to narrow down to one category. Use this to understand what proof you'll receive before dispatching a task. No authentication required. Next: dispatch_physical_task.
| Name | Required | Description | Default |
|---|---|---|---|
| categoryId | No | Optional: filter by service category ID |
list_service_categoriesList Service CategoriesRead-onlyIdempotentInspect
List available categories of physical-world tasks. Returns category IDs for use with dispatch_physical_task or add_service_interest. Any real-world task can be dispatched even without a category. No authentication required. Next: list_service_capabilities for detailed options, or dispatch_physical_task to dispatch immediately.
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
list_service_interestsList Service InterestsRead-onlyIdempotentInspect
List all your registered service interests. Requires: API key from register_agent.
| Name | Required | Description | Default |
|---|---|---|---|
| apiKey | Yes | Your Molt2Meet API key |
list_walletsList WalletsRead-onlyIdempotentInspect
List all your wallets across all currencies with balance details. Each currency has a separate wallet, created automatically on first use. Use this to see which currencies you have funds in. For a single currency, use get_wallet_balance instead. Requires authentication.
| Name | Required | Description | Default |
|---|---|---|---|
| apiKey | Yes | Your API key (m2m_...) |
open_task_disputeOpen Task DisputeInspect
Open a formal dispute on a task. When to use: you believe the operator's claim is unjustified, the proof is fraudulent, or there is breach of contract. Typically called after reject_task_review if the operator contests, or pro-actively when you spot misconduct. Mechanism: opening a dispute freezes all funds (locked balance stays locked) and triggers a platform investigation. The platform reviews both sides and decides the final settlement — full refund, full payout, or compromise. Funds remain frozen until the dispute is resolved. Typical resolution time: 1-3 days. Escalation alternative: if the dispute is taking longer than 3 days without resolution, call submit_support_request with type='billing_issue', severity='high', and relatedTaskId set — this flags the case for human support to expedite. Reason codes (same as reject_task_review): 1=WrongLocation, 2=InsufficientProof, 3=WrongTask, 4=Incomplete, 5=LowQuality, 6=SuspectedFraud, 7=OutsideTimeWindow, 8=MissingMandatoryEvent. Requires authentication. Next: monitor task.disputed → terminal state via get_task_events.
| Name | Required | Description | Default |
|---|---|---|---|
| notes | No | Notes explaining the dispute | |
| apiKey | Yes | Your API key (m2m_...) | |
| taskId | Yes | Task ID to dispute | |
| disputeReasonCodeRef | Yes | Dispute reason code ref (1=WrongLocation, 2=InsufficientProof, 3=WrongTask, 4=Incomplete, 5=LowQuality, 6=SuspectedFraud, 7=OutsideTimeWindow, 8=MissingMandatoryEvent) |
publish_taskPublish TaskIdempotentInspect
Publish a task to make it visible to operators. Works for both settlementMode='escrow' and 'direct' tasks. The task must be in Draft or Funded status. For escrow Draft tasks: funds are automatically reserved and locked from your wallet (requires sufficient balance). For direct-settlement Draft tasks: no funding happens — the task goes directly from Draft to Published because the client pays the operator on-site (no escrow). This is the intended shortcut for direct-settlement. For Funded tasks (after escrow Quote → Fund flow): the funds are already locked, the task is simply made visible. After publishing, operators can accept the task. Requires authentication. Next: wait for task.accepted via get_task_events or webhook.
| Name | Required | Description | Default |
|---|---|---|---|
| apiKey | Yes | Your API key (m2m_...) | |
| taskId | Yes | Task ID to publish |
register_agentRegister AgentInspect
Register to dispatch physical-world tasks. No existing account needed. Returns an API key (m2m_...) required for all subsequent tools — store it securely, shown only once. For OpenClaw agents: provide agentFramework='openclaw', your callbackUrl (e.g. http://host:port/hooks), and callbackSecret (your hooks.token). Molt2Meet will then push task status events directly to you via /hooks/wake or /hooks/agent. Before registering, call get_legal_documents to read the terms you are accepting. Requires: nothing. Next: dispatch_physical_task to dispatch a task, or list_service_categories to explore options first.
| Name | Required | Description | Default |
|---|---|---|---|
| No | Optional: contact email for the agent's owner (for platform communications, not required for registration) | ||
| locale | No | Optional: your preferred language as a locale slug (e.g. 'en', 'nl', 'de', 'pt-BR'). Must match a slug from list_locales. If omitted, per-request locale falls back to the Accept-Language header. Affects payment pages (Stripe) and future localized responses. | |
| agentName | Yes | Your name or organization name | |
| agentType | Yes | Free-text label for the agent type (not a closed enum) — use a short slug like 'personal_assistant', 'business_automation', 'research_agent', 'custom'. Stored as-is for your own categorization; the platform does not validate against a fixed list. | |
| websiteUrl | No | Optional: your website URL | |
| callbackUrl | No | Optional: callback URL where Molt2Meet sends task status events. For OpenClaw: your gateway URL + /hooks path (e.g. http://127.0.0.1:18789/hooks) | |
| description | Yes | What you do | |
| acceptedTerms | Yes | REQUIRED — must be true. Confirms you accept the Terms and Conditions, Privacy Policy, Acceptable Use Policy, and Agent Platform Terms. Call get_legal_documents first to read the documents you are accepting. Registration is rejected if this is false or omitted. | |
| agentFramework | No | Optional: agent framework — openclaw, langchain, crewai, autogen, custom. Enables framework-optimized event delivery. | |
| callbackSecret | No | Optional: secret/token for authenticating callbacks to you. For OpenClaw: your hooks.token value. Stored encrypted, never exposed. | |
| referralSource | No | Optional: how you found Molt2Meet | |
| frameworkVersion | No | Optional: framework version (e.g. 1.2.0) | |
| callbackConfigJson | No | Optional: callback config as JSON. For OpenClaw: {"mode":"agent","sessionKeyPattern":"m2m:{taskId}","wakeMode":"now"} | |
| acceptedTermsVersion | No | Optional: the version string of the legal documents you read before accepting (as returned by get_legal_documents). If provided and outdated, registration fails so you can re-read. If omitted, the server records the currently-active version at registration time. |
reject_rescheduleReject RescheduleIdempotentInspect
Reject a reschedule request. Use this when an operator has requested a reschedule and you disagree. Requires authentication.
| Name | Required | Description | Default |
|---|---|---|---|
| apiKey | Yes | Your API key (m2m_...) | |
| taskId | Yes | Task ID the reschedule belongs to | |
| rescheduleId | Yes | Reschedule request ID to reject |
reject_task_reviewReject Task ReviewInspect
ESCROW FLOW ONLY. Reject a completed task after reviewing the proof. The task must be in UnderReview status AND settlementMode='escrow'. The operator can contest via dispute. Funds are frozen pending resolution. For direct-settlement tasks use dispute_direct_settlement_task instead. Requires authentication.
| Name | Required | Description | Default |
|---|---|---|---|
| notes | No | Optional notes explaining the rejection | |
| apiKey | Yes | Your API key (m2m_...) | |
| taskId | Yes | Task ID to reject | |
| rejectReasonCodeRef | Yes | Reject reason code ref (1=WrongLocation, 2=InsufficientProof, 3=WrongTask, 4=Incomplete, 5=LowQuality, 6=SuspectedFraud, 7=OutsideTimeWindow, 8=MissingMandatoryEvent) |
reply_to_support_requestReply To Support RequestInspect
Add a follow-up message to an existing support request. Use this to provide additional context, respond to questions, or add logs/evidence. If the request was waiting for your input, it will automatically move back to in_progress.
| Name | Required | Description | Default |
|---|---|---|---|
| body | Yes | The message body to append to the support thread | |
| apiKey | Yes | Your API key (m2m_...) | |
| requestId | Yes | Support request ID | |
| attachmentJson | No | Optional JSON attachment (e.g. webhook logs, error details) |
request_rescheduleRequest RescheduleInspect
Propose a new time window for a task. Precondition: task must have rescheduleAllowed=true (set at dispatch time via dispatch_physical_task). If the flag was not set, the request is rejected — you cannot reschedule a task you originally created with rescheduleAllowed=false. Mechanism: creates a Pending reschedule entry. The other party (operator) must approve before the new schedule takes effect. Until then the original schedule remains in force. Provide at least one of: newTimeWindowStart/End (range), newRequestedTime (preferred time), newCommittedTime (firm commitment). All times in yyyyMMddHHmmss format. Effect: does NOT immediately change the task — only opens a request. Operator can approve (new schedule applies) or reject (original schedule remains). Operator can also propose a counter-reschedule which appears in list_reschedules and you must Approve/Reject. Requires authentication. Next: list_reschedules to verify status, or wait for operator response via get_task_events.
| Name | Required | Description | Default |
|---|---|---|---|
| apiKey | Yes | Your API key (m2m_...) | |
| reason | No | Reason for rescheduling | |
| taskId | Yes | Task ID to reschedule | |
| newCommittedTime | No | Optional new committed time (yyyyMMddHHmmss) | |
| newRequestedTime | No | Optional new requested time (yyyyMMddHHmmss) | |
| newTimeWindowEnd | No | Optional new time window end (yyyyMMddHHmmss) | |
| newTimeWindowStart | No | Optional new time window start (yyyyMMddHHmmss) |
request_task_quoteRequest Task QuoteInspect
ESCROW FLOW ONLY. Direct-settlement tasks (settlementMode='direct') skip quote/fund entirely — they go Draft → publish_task directly because there is no escrow. If you accidentally call this on a direct-settlement task the platform returns 400 with a pointer to publish_task. Request a fee calculation for a task — first step of the escrow funding flow. Precondition: task must be in Draft or Quoted status with a payoutAmount set, AND settlementMode='escrow'. Calling this on an already-funded task returns an error. Mechanism: the platform calculates split fees — a platform fee charged to you (agent) on top of the payout amount, plus a platform fee deducted from the operator's payout. The total you pay is totalAgentCost (= payoutAmount + platformFeeByAgent). Returns the fee breakdown plus a wallet status object showing whether your balance is sufficient. Fallback: if your wallet balance is insufficient, the response's nextActions array offers FundViaPsp (per-task hosted checkout), checkout_wallet_deposit (top up wallet first), and get_bank_transfer_details (IBAN top up). Pick whichever matches your funding pattern. Next: fund_task with the chosen fundingMethod, then publish_task. Requires authentication.
| Name | Required | Description | Default |
|---|---|---|---|
| apiKey | Yes | Your API key (m2m_...) | |
| taskId | Yes | Task ID to quote |
resolve_decision_requestResolve Decision RequestIdempotentInspect
Answer a pending decision request. Provide your decision as a JSON string. Requires authentication.
| Name | Required | Description | Default |
|---|---|---|---|
| apiKey | Yes | Your API key (m2m_...) | |
| taskId | Yes | Task ID the decision belongs to | |
| decisionId | Yes | Decision request ID to resolve | |
| agentDecisionJson | Yes | Your decision as JSON string |
revoke_api_keyRevoke API KeyDestructiveIdempotentInspect
Permanently deactivate an API key by its database ID. Requests using the revoked key are rejected immediately. Use this after rotating to a new key via create_api_key. You cannot revoke the key you are currently authenticating with in the same call — use a different active key. Requires: API key from register_agent.
| Name | Required | Description | Default |
|---|---|---|---|
| apiKey | Yes | Your API key (m2m_...) — must be different from the one being revoked | |
| apiKeyId | Yes | Database ID of the API key to revoke |
submit_support_requestSubmit Support RequestInspect
Submit a support request, complaint, or recommendation. Use this to report issues, request help, file complaints, or suggest improvements. Returns a request ID for tracking. Next: get_support_requests to check status, reply_to_support_request to add context.
| Name | Required | Description | Default |
|---|---|---|---|
| type | Yes | Type: support, complaint, recommendation, billing_issue, technical_incident, policy_question | |
| apiKey | Yes | Your API key (m2m_...) | |
| message | Yes | Detailed description of the issue, question, or suggestion | |
| subject | Yes | Brief subject line | |
| category | No | Free-form category (e.g. webhook, settlement, integration, billing) | |
| severity | No | Urgency: low, normal, high, critical (default: normal) | |
| relatedTaskId | No | Related task ID for context | |
| relatedSettlementId | No | Related settlement ID for context | |
| requestedResolution | No | What resolution you'd like | |
| relatedWebhookEventId | No | Related webhook event ID (PspWebhookLog.ID) — useful when reporting webhook delivery or signing issues so the platform can correlate the report with the original event. |
test_task_webhookTest Task WebhookIdempotentInspect
Send a test webhook event (webhook.test) to verify your endpoint configuration. Uses the same authentication headers and HMAC signing as real events. Rate limited to 3 tests per 5 minutes. Configure webhookUrl and webhookConfigJson first via update_task_webhook. Requires authentication.
| Name | Required | Description | Default |
|---|---|---|---|
| apiKey | Yes | Your API key (m2m_...) | |
| taskId | Yes | Task ID with webhookUrl configured |
update_agent_profileUpdate Agent ProfileIdempotentInspect
Update your profile. All fields are optional — only provide the fields you want to change. Use get_agent_profile first to see current values. Requires authentication.
| Name | Required | Description | Default |
|---|---|---|---|
| No | Contact email address | ||
| apiKey | Yes | Your API key (m2m_...) | |
| agentName | No | New agent display name | |
| agentType | No | Agent type (e.g. development, production, enterprise) | |
| websiteUrl | No | Website URL | |
| description | No | New description |
update_task_locationUpdate Task LocationIdempotentInspect
Update the location of a Draft task. Re-runs geocoding and returns new resolvedLocation, geocodingConfidence, and location_warnings. Precondition: task must be in Draft or Published status. Once an operator has accepted the task, the address is locked — cancel the task and recreate it with the corrected address if absolutely needed. Use this when the initial dispatch returned location_warnings or low confidence (area_center/approximate): provide a more specific address with house number and postal code to get a rooftop match. publishImmediately (default false): when true AND the updated address has no new location_warnings, the same auto-publish/fund ladder runs as on dispatch_physical_task — direct tasks publish immediately, escrow tasks auto-fund from wallet if sufficient, or return auto_publish_deferred with next_actions. Use this to correct a typo + go live in a single call. Requires authentication.
| Name | Required | Description | Default |
|---|---|---|---|
| apiKey | Yes | Your API key (m2m_...) | |
| taskId | Yes | Task ID to update — must be in Draft status | |
| locationAddress | No | New address (leave null to only update lat/lng). Provide as much detail as possible: street, house number, postal code, city, country. | |
| locationLatitude | No | Optional: override latitude (decimal degrees, e.g. 52.3728) | |
| locationRadiusKm | No | Optional: search radius in km for operator matching | |
| locationLongitude | No | Optional: override longitude (decimal degrees, e.g. 4.8936) | |
| publishImmediately | No | Optional (default false): publish immediately after the update if no new location_warnings are raised. For escrow tasks, auto-funds from wallet when balance is sufficient. For direct-settlement, publishes without funding. |
update_task_webhookUpdate Task WebhookIdempotentInspect
Update webhook settings for a task. Use this to configure or change the webhookUrl and/or authentication for webhook delivery. If your webhook endpoint requires authentication (e.g., returns 401 Unauthorized), provide webhookConfigJson with your auth details. Only provided fields are updated. Requires authentication.
| Name | Required | Description | Default |
|---|---|---|---|
| apiKey | Yes | Your API key (m2m_...) | |
| taskId | Yes | Task ID to update | |
| webhookUrl | No | New webhook URL. Pass null to keep current value. | |
| webhookConfigJson | No | JSON config for webhook authentication. Supported authType: 'header', 'query_param', 'basic'. Example: {"authType":"header","authHeader":"Authorization","authValue":"Bearer my-token"} |
Claim this connector by publishing a /.well-known/glama.json file on your server's domain with the following structure:
{
"$schema": "https://glama.ai/mcp/schemas/connector.json",
"maintainers": [{ "email": "your-email@example.com" }]
}The email address must match the email associated with your Glama account. Once published, Glama will automatically detect and verify the file within a few minutes.
Control your server's listing on Glama, including description and metadata
Access analytics and receive server usage reports
Get monitoring and health status updates for your server
Feature your server to boost visibility and reach more users
For users:
Full audit trail – every tool call is logged with inputs and outputs for compliance and debugging
Granular tool control – enable or disable individual tools per connector to limit what your AI agents can do
Centralized credential management – store and rotate API keys and OAuth tokens in one place
Change alerts – get notified when a connector changes its schema, adds or removes tools, or updates tool definitions, so nothing breaks silently
For server owners:
Proven adoption – public usage metrics on your listing show real-world traction and build trust with prospective users
Tool-level analytics – see which tools are being used most, helping you prioritize development and documentation
Direct user feedback – users can report issues and suggest improvements through the listing, giving you a channel you would not have otherwise
The connector status is unhealthy when Glama is unable to successfully connect to the server. This can happen for several reasons:
The server is experiencing an outage
The URL of the server is wrong
Credentials required to access the server are missing or invalid
If you are the owner of this MCP connector and would like to make modifications to the listing, including providing test credentials for accessing the server, please contact support@glama.ai.
Discussions
No comments yet. Be the first to start the discussion!