session_infoLABSCO SUMMARY
wait_for_request is what turns a callback into a step in the conversation.
Testing a webhook usually means switching to a browser tab and refreshing until something shows up. Here the agent blocks on wait_for_request and then reads what arrived. Every mutation needs confirm=true, so nothing rewrites your DNS records or served files on a first attempt.
What it is
A Python server over requestrepo, the request-capture service. It covers the whole surface: captured requests, sharing, DNS records and served files.
What you get
- wait_for_request to block until a callback lands, list_requests for what has already arrived
- delete_request and delete_all_requests to clear the log
- share_request and get_shared_request to hand a captured request to someone else
- add_dns, list_dns, update_dns and remove_dns for the DNS records on your subdomain
- set_file, get_file, list_files and update_files for what the endpoint serves back
- session_info for the current session
- Mutating tools gated behind confirm=true
- Binary fields returned in a JSON-safe bytes envelope
- Stdio by default, streamable-http optional
Requirements
Python, installed from the repository. Everything is optional: with no REQUESTREPO_TOKEN the server creates a new session for you, and an admin token can be supplied instead. The host it talks to, the port and protocol, whether certificates are verified, the default wait before a timeout and the largest response it will return all have defaults, and all can be overridden in the environment.
Setup effort
Build from source — git clone https://github.com/hofill/RequestRepo-MCP
USE CASES
Testing a webhook you just configured
Block until the callback lands, then read the request that arrived rather than polling a page.
Seeing exactly what a client sent you
Read the captured request, with binary fields wrapped so they survive the trip intact.
Controlling what the endpoint answers with
Set the file the subdomain serves, and check what is there now before replacing it.
Testing DNS-based resolution behaviour
Add or change the records on your subdomain, then confirm the current set.
Showing a colleague what came in
Share the captured request and hand over the link rather than pasting a screenshot.
Starting a clean test run
Clear the request log, and check which session you are actually working in.
16 tools
Listed in project docs. Your client may show a different list.
list_requestswait_for_requestdelete_requestdelete_all_requestsshare_requestget_shared_requestlist_dnsadd_dnsremove_dnsupdate_dnslist_filesget_fileset_fileupdate_filespingBEFORE YOU INSTALL
What to know first
Tools you get
16 tools named in the project's documentation.
Requires
- Python 3.10+
- requestrepo-mcp on PATH
Where it runs
All 5 documented clients run the server on your machine.
INSTALLATION
Connect your client
This one is built from source rather than installed with a single command.
Server setup
git clone https://github.com/hofill/RequestRepo-MCP
cd RequestRepo-MCP
python -m pip install -e .MCP Clients
Codex
codex mcp add requestrepo -- requestrepo-mcp --transport stdioClaude Code, Claude Desktop, Cursor
{
"mcpServers": {
"requestrepo": {
"command": "requestrepo-mcp",
"args": [
"--transport",
"stdio"
],
"env": {
"REQUESTREPO_TOKEN": "<YOUR_REQUESTREPO_TOKEN>"
}
}
}
}REQUESTREPO_TOKEN is optional: delete the env block and the server creates a new requestrepo session for you. Keep it only if you already have a session token; <YOUR_REQUESTREPO_TOKEN> is that token. If your client cannot start requestrepo-mcp, use the absolute path to it in the Python environment you installed into.
VS Code
{
"servers": {
"requestrepo": {
"type": "stdio",
"command": "requestrepo-mcp",
"args": [
"--transport",
"stdio"
],
"env": {
"REQUESTREPO_TOKEN": "<YOUR_REQUESTREPO_TOKEN>"
}
}
}
}REQUESTREPO_TOKEN is optional: delete the env block and the server creates a new requestrepo session for you. Keep it only if you already have a session token; <YOUR_REQUESTREPO_TOKEN> is that token. If your client cannot start requestrepo-mcp, use the absolute path to it in the Python environment you installed into.