addRuleToGroup
Moves a rule into a group.
Drive a running whistle proxy from the conversation: write and toggle rules, keep reusable values out of the rule text, flip HTTPS interception, and pull the captured request and response for a URL.
LABSCO SUMMARY
The split worth learning is rules against values: rules say what whistle rewrites, values hold reusable payloads a rule can point at, and both have their own create, rename, group and delete tools. Replay is asynchronous by design — replayRequest returns before the response exists, so the outcome comes from a follow-up getInterceptInfo call on the same URL, and bodies arrive base64-encoded either way. getAllValues can return a large payload, which is why the index-and-name listing exists next to it.
A server over a whistle proxy's admin interface — rules and rule groups, named values, the proxy's own switches, captured traffic for a URL, and request replay.
A whistle proxy already running for the server to talk to. No account and no key. MIT.
One command — npx -y whistle-mcp-tool
USE CASES
Write the mapping as a new rule, fill in its content, and enable it. Reading the rule list back shows which other rules are live and might match the same request first.
Read what whistle captured for the URL, then send it again with your own method, headers or body. The replay call returns before the response does, so the result is read back from the capture.
Check what the proxy currently has switched on, then enable interception at the level you need — HTTPS and HTTP/2 are separate switches, and multi-rule mode changes whether more than one rule can match a request.
Store the response body as a named value and have the rule reference it. The listing call returns names without their data, so finding the right one does not drag every payload into the context.
Group the rules that belong together, then switch the group's members off without deleting them. setAllRulesState clears the board in one call when a capture needs to start clean.
Counted once with only startup setup. Other versions, modes or optional credentials may expose a different list.
addRuleToGroupMoves a rule into a group.
addValueToGroupMoves a named value into a group.
createGroupCreates a rule group with the given name.
createRuleCreates a rule with the given name.
createValueCreates a named value.
createValuesGroupCreates a group for named values.
deleteGroupDeletes a rule group.
deleteRuleDeletes a rule.
deleteValueDeletes a named value.
deleteValueGroupDeletes a value group.
disableRuleDisables a rule by name.
enableRuleEnables a rule by name.
getAllValuesReturns every named value with its data; use the value list first and fetch single values when the payload is large.
getCurrentTimestampReturns the current local timestamp.
getInterceptInfoReturns captured requests and responses for a URL, filtered by start time and count, with bodies base64-encoded.
getRulesReturns every rule and rule group.
getValueReturns one named value in full, including its data.
getValueListLists values by index and name only, without their data.
getWhistleStatusReturns the whistle server's current state.
removeRuleFromGroupRemoves a rule from its group.
removeValueFromGroupRemoves a named value from its group.
renameGroupRenames a rule group.
renameRuleRenames a rule.
renameValueRenames a named value.
renameValueGroupRenames a value group.
replayRequestReplays a captured request with a chosen method, headers, body and optional HTTP/2; the result is read afterwards from the capture.
setAllRulesStateEnables or disables every rule at once.
toggleHttp2Turns HTTP/2 on or off.
toggleHttpInterceptionTurns HTTP interception on or off.
toggleHttpsInterceptionTurns HTTPS interception on or off.
toggleMultiRuleModeTurns multi-rule mode on or off.
toggleProxyTurns the whistle proxy on or off.
updateRuleReplaces a rule's content.
updateValueReplaces the content of a named value.
BEFORE YOU INSTALL
34 tools when we connected.
CONTEXT COST
Rated by the size of the 34 tool definitions that ride along on every turn, not by how many there are
INSTALLATION
Add the block to your client, or run the command directly.
{
"mcpServers": {
"whistle-mcp-tool": {
"command": "npx",
"args": [
"-y",
"whistle-mcp-tool"
]
}
}
}npx -y whistle-mcp-tool