MockPost
Server Configuration
Describes the environment variables required to run the server.
| Name | Required | Description | Default |
|---|---|---|---|
| MOCKPOST_URL | No | The base URL of the MockPost HTTP service. Defaults to http://localhost:8090. | http://localhost:8090 |
Instructions
Guidance the server publishes about itself, which clients place ahead of the tool catalog so the model reads it before choosing anything.
This server publishes no instructions, or was last inspected before Glama recorded them.
Capabilities
Features and capabilities supported by this server
Protocol revision2025-11-25
| Capability | Details |
|---|---|
| tools | {
"listChanged": false
} |
| prompts | {
"listChanged": false
} |
| resources | {
"subscribe": false,
"listChanged": false
} |
| experimental | {} |
Tools
Functions exposed to the LLM to take actions
| Name | Description |
|---|---|
| set_test_idA | Set the active test_id: all subsequent calls are filtered/persisted with it. Pass null/None to go back to the global queue. |
| set_appA | Set the active app (a name registered in MockPost): incoming event simulations and queries are filtered/delivered only to that app. Pass null/None for no app. Register apps with register_app. |
| register_appA | Register or update an app: bind its FAKE credentials (Telegram bot token, Twilio SID, Stripe sk_test_, WhatsApp phone_id, FCM project_id) to a name. The app talks to MockPost using those credentials as if it were the real service; MockPost identifies it by them. Use the same name to update creds. |
| list_appsA | List registered apps with their fake credentials (MockPost identity). |
| delete_appA | Delete a registered app. Its webhooks become global. |
| list_webhook_deliveriesA | Webhook delivery history: what each app returned (code + body), even if it was down (response_code 0). Filterable by channel and app. |
| list_sent_messagesA | List captured messages for a channel (or all), newest first. channel: mail|telegram|whatsapp|webpush|sms|fcm|apns|slack|discord|stripe app: registered app name to filter only its messages. |
| get_message_detailA | Return a message's full payload, including raw_payload (MIME/JSON). |
| simulate_delivery_webhookA | Fire a delivery status webhook (delivered|read|failed) back to the app. Uses POST /whatsapp/simulate/status. |
| simulate_incoming_messageB | Simulate an external user sending an inbound message to the app. channel: telegram (via /telegram/client/sendMessage) or whatsapp. app: registered app name to target; overrides set_app for this call. |
| simulate_stripe_eventA | Build and send a simulated Stripe event, signed (Stripe-Signature), to the registered webhook. app: registered app name to target; overrides set_app for this call. |
| simulate_github_eventA | Fire a GitHub webhook event (push, issues, pull_request) signed with X-Hub-Signature-256 to the app's registered GitHub webhook. app: registered app name to target; overrides set_app for this call. |
| simulate_facebook_eventB | Fire a Facebook Graph API webhook event signed with X-Hub-Signature-256 to the app's registered Facebook webhook. app: registered app name to target; overrides set_app for this call. |
| simulate_x_eventB | Fire an X (Twitter) Account Activity webhook event signed with X-Twitter-Webhooks-Signature to the app's registered X webhook. payload is a list of event objects, as the real API delivers. app: registered app name to target; overrides set_app for this call. |
| verify_facebook_webhookA | Verify a Facebook webhook subscription (hub.mode/hub.verify_token/ hub.challenge) as Meta does on registration. Returns the challenge URL. |
| create_push_subscriptionA | Create a Web Push subscription and return it shaped exactly like the browser's PushSubscription (endpoint + keys.p256dh + keys.auth). Hand it to the app under test: MockPost keeps the private key, so when the backend sends the encrypted push with pywebpush or web-push it verifies the VAPID signature, decrypts the payload and captures the cleartext. |
| list_push_subscriptionsA | List Web Push subscriptions with their endpoint and status (active|gone). |
| expire_push_subscriptionA | Mark a Web Push subscription as gone: the next push answers 410, which is how a backend learns it must delete a dead subscription. |
| simulate_push_token_unregisteredA | Make a native push token look uninstalled: FCM answers 404 UNREGISTERED and APNs answers 410 Unregistered on the next send. channel: fcm | apns |
| get_latest_otpC | Return the latest OTP code (SMS or email) sent to an identifier. |
| generate_totp_secretB | Generate and store a TOTP secret (Google Authenticator). Returns base32 secret and otpauth:// URL. |
| get_totp_codeA | Compute the current TOTP code (6 digits) for a previously generated secret. Window ±1. |
| set_oauth_fake_profileB | Set the profile the fake OAuth provider (google|github|facebook|x) returns on the next login. |
| get_oauth_sessionA | Inspect a simulated OAuth session: code, tokens, returned profile and expiry. |
| get_channel_configB | Return host/port/base URL/fake tokens the app must use for that channel. |
| register_webhookB | Register an app webhook (Telegram setWebhook, WhatsApp, Stripe...). If you pass an app (registered name), the webhook only receives events from that app. |
| list_webhooksA | List registered webhooks, optionally filtered by channel and app. |
| trigger_webhookA | Fire a test event to a registered webhook and return the app's response. |
| clear_channelA | Delete all captured messages of a channel (cleanup between test runs). With app, only that app's messages. |
| clear_allA | Delete all captured messages (or only those of a test_id/app). |
| get_timeline_markdownA | FULL TIMELINE as Markdown: messages + webhook_events + stripe_events in chronological order. Call this first when verifying a test result; use get_message_detail only for a single event's detail. With app, only that app's events. |
Prompts
Interactive templates invoked by user choice
| Name | Description |
|---|---|
No prompts | |
Resources
Contextual data attached and managed by the client
| Name | Description |
|---|---|
No resources | |
TDQS
Scored across 31 tools
Most tools have a distinct resource+action purpose, so an agent can usually select the right one. A few pairs overlap or look similar—list_webhooks vs list_webhook_deliveries, list_sent_messages vs get_timeline_markdown, and clear_channel vs clear_all—but the descriptions clarify the boundaries.
All tool names use snake_case with a verb-first pattern such as list_, get_, set_, register_, simulate_, and clear_. Minor multiword names like simulate_push_token_unregistered remain readable and do not break the overall convention.
31 tools is above the 25-tool threshold where the surface starts to feel heavy. The broad multi-channel domain justifies some size, but many simulate_* and channel-specific tools could be grouped or split into focused sub-servers to reduce cognitive load.
The tool set covers the core lifecycle well: app registration, webhooks, captured messages, OTP/TOTP, push subscriptions, OAuth sessions, simulation, and cleanup. Notable gaps exist, such as no delete/unregister webhook and limited inbound simulation channels beyond Telegram/WhatsApp, but typical verification workflows are still supported.