{"serverId":"mcp-registry/com.2extract/mcp","tools":[{"name":"createProxyResource","fixed":{"name":"createProxyResource","description":"Create a new residential or mobile proxy resource on the account. Check getAccountBalance and require can_create_proxy to be true; usage is billed according to the selected plan (tariff_id from listProxyPlans). The name must be unique on the account and cannot be changed later. Limits can be set here or later with setProxyLimits. Returns the complete new proxy, including its password. Use buildConnectionString to get a connection string. Response fields: docs://proxies/createProxyResource.","inputSchema":{"type":"object","required":["name","proxy_type","tariff_id"],"properties":{"name":{"type":"string","description":"Proxy name: lowercase letters, digits, underscores only, max 50 characters. Immutable after creation."},"limits":{"type":["null","object"],"required":["limit_type","time_period","total_limit"],"properties":{"limit_type":{"type":"string","description":"'money' = USD spend cap, 'traffic' = bytes cap"},"time_period":{"type":"string","description":"Reset period for the limit counter, one of: daily, monthly"},"total_limit":{"type":"number","description":"Limit value: USD amount for 'money', bytes for 'traffic'"}},"description":"Optional spend or traffic limit. Can also be set later via setProxyLimits.","additionalProperties":false},"countries":{"type":["null","array"],"items":{"type":"integer","minimum":0},"description":"Country IDs; empty allows any country."},"tariff_id":{"type":"integer","minimum":0,"description":"Tariff plan ID from listProxyPlans"},"proxy_type":{"type":"string","description":"Proxy type, one of: residential, mobile"},"description":{"type":"string","description":"Free-text note, shown alongside this proxy in listProxyResources. Write enough detail to identify this proxy's purpose at a glance later — e.g. the project or task it's for, why it was created, its default country, or other distinguishing settings."},"ip_whitelist":{"type":["null","array"],"items":{"type":"string"},"description":"IP addresses allowed to authenticate with this proxy, e.g. ['203.0.113.1']. Empty or omitted means no IP restriction."}},"additionalProperties":false},"annotations":{"openWorldHint":true,"readOnlyHint":false,"destructiveHint":false,"idempotentHint":false},"title":"Create Proxy Resource"},"changes":[{"kind":"annotations","detail":"Added readOnlyHint: false, destructiveHint: false, idempotentHint: false (inferred from the name).","verify":true}],"tokensBefore":597,"tokensAfter":597},{"name":"setProxyIpWhitelist","fixed":{"name":"setProxyIpWhitelist","description":"Replace the IP whitelist for a proxy resource, restricting authentication to the given IPs. This controls who can authenticate; to control which domains the proxy can reach, use setProxyTargetHosts. Returns the updated proxy with the applied IP whitelist. Response fields: docs://proxy-settings/setProxyIpWhitelist.","inputSchema":{"type":"object","required":["id","ips"],"properties":{"id":{"type":"string","description":"Proxy resource ID. Get from listProxyResources."},"ips":{"type":["null","array"],"items":{"type":"string"},"description":"List of allowed IP addresses, e.g. ['203.0.113.1', '198.51.100.42']. Empty array removes all IP restrictions."}},"additionalProperties":false},"annotations":{"openWorldHint":true,"readOnlyHint":false,"destructiveHint":false,"idempotentHint":true},"title":"Set Proxy IP Whitelist"},"changes":[{"kind":"annotations","detail":"Added readOnlyHint: false, destructiveHint: false, idempotentHint: true (inferred from the name).","verify":true}],"tokensBefore":204,"tokensAfter":204},{"name":"setProxyLimits","fixed":{"name":"setProxyLimits","description":"Set the traffic or spending limit on a proxy resource to control costs. A proxy has one limit: this call replaces any existing limit, and total_limit 0 removes it. The counter resets daily or monthly according to time_period. Returns the updated proxy with the applied limits. To change other settings in the same call, use updateProxyResource. Response fields: docs://proxy-settings/setProxyLimits.","inputSchema":{"type":"object","required":["id","limit_type","time_period","total_limit"],"properties":{"id":{"type":"string","description":"Proxy resource ID. Get from listProxyResources."},"limit_type":{"type":"string","description":"'money' = USD spend cap, 'traffic' = bytes cap"},"time_period":{"type":"string","description":"Reset period for the limit counter, one of: daily, monthly"},"total_limit":{"type":"number","description":"Limit value: USD amount for 'money' (e.g. 50.00), bytes for 'traffic' (e.g. 1073741824 = 1GB). Set to 0 to remove the limit."}},"additionalProperties":false},"annotations":{"openWorldHint":true,"readOnlyHint":false,"destructiveHint":false,"idempotentHint":true},"title":"Set Proxy Limits"},"changes":[{"kind":"annotations","detail":"Added readOnlyHint: false, destructiveHint: false, idempotentHint: true (inferred from the name).","verify":true}],"tokensBefore":289,"tokensAfter":289},{"name":"setProxyTargetHosts","fixed":{"name":"setProxyTargetHosts","description":"Replace the target host whitelist for a proxy resource, restricting its traffic to the given domains. This controls where the proxy can connect; to control who can authenticate, use setProxyIpWhitelist. Returns the updated proxy with the applied target host whitelist. Response fields: docs://proxy-settings/setProxyTargetHosts.","inputSchema":{"type":"object","required":["id","target_hosts"],"properties":{"id":{"type":"string","description":"Proxy resource ID. Get from listProxyResources."},"target_hosts":{"type":["null","array"],"items":{"type":"string"},"description":"List of allowed domains, e.g. ['example.com', '*.api.service.com']. Empty array removes all restrictions."}},"additionalProperties":false},"annotations":{"openWorldHint":true,"readOnlyHint":false,"destructiveHint":false,"idempotentHint":true},"title":"Set Proxy Target Hosts"},"changes":[{"kind":"annotations","detail":"Added readOnlyHint: false, destructiveHint: false, idempotentHint: true (inferred from the name).","verify":true}],"tokensBefore":212,"tokensAfter":212},{"name":"updateProxyResource","fixed":{"name":"updateProxyResource","description":"Update description, countries, status, IP whitelist, or limits in one call. Name and proxy_type are not mutable through this MCP tool. For single-field changes, prefer setProxyIpWhitelist, setProxyLimits, or deactivateProxyResource. Returns the complete updated proxy without its password. Response fields: docs://proxies/updateProxyResource.","inputSchema":{"type":"object","required":["id"],"properties":{"id":{"type":"string","description":"Proxy resource ID. Get from listProxyResources."},"limits":{"type":["null","object"],"required":["limit_type","time_period","total_limit"],"properties":{"limit_type":{"type":"string","description":"'money' = USD spend cap, 'traffic' = bytes cap"},"time_period":{"type":"string","description":"Reset period for the limit counter, one of: daily, monthly"},"total_limit":{"type":"number","description":"Limit value: USD amount for 'money', bytes for 'traffic'"}},"description":"New spend or traffic limit. Replaces the existing limit.","additionalProperties":false},"status":{"type":"string","description":"New status, one of: active, inactive"},"countries":{"type":["null","array"],"items":{"type":"integer","minimum":0},"description":"Replacement country IDs; empty clears."},"description":{"type":"string","description":"New description. See createProxyResource's description field for what to include."},"ip_whitelist":{"type":["null","array"],"items":{"type":"string"},"description":"New IP whitelist. Replaces the existing list entirely. Empty array removes all restrictions."}},"additionalProperties":false},"annotations":{"openWorldHint":true,"readOnlyHint":false,"destructiveHint":false,"idempotentHint":true},"title":"Update Proxy Resource"},"changes":[{"kind":"annotations","detail":"Added readOnlyHint: false, destructiveHint: false, idempotentHint: true (inferred from the name).","verify":true}],"tokensBefore":445,"tokensAfter":445}],"toolsChanged":5,"tokensSaved":0,"todo":[],"note":"Deterministic fixes. Changes marked verify need a human look before shipping (renames, inferred annotations, inferred types, removed text). Parameter descriptions in `todo` need to be written by someone who knows the API."}