Curl MCP Server
Click on "Deploy Server".
Wait a few minutes for the server to deploy. Once ready, it will show a "Started" state.
In the chat, type
@followed by the MCP server name and your instructions, e.g., "@Curl MCP ServerGET https://jsonplaceholder.typicode.com/posts/1"
That's it! The server will respond to your query, and you can continue using it as needed.
Here is a step-by-step guide with screenshots.
Curl MCP Server
Un server MCP (Model Context Protocol) che fornisce strumenti HTTP/HTTPS completi utilizzando curl. Questo server consente di eseguire richieste HTTP con supporto per vari metodi di autenticazione, upload di file, download e comandi curl personalizzati.
Caratteristiche
Richieste HTTP complete: GET, POST, PUT, PATCH, DELETE, HEAD
Autenticazione multipla: Bearer Token, Basic Auth, Digest Auth, OAuth2, API Key, Custom Headers
Upload e Download di file: Caricamento e scaricamento di file tramite HTTP
Cookie Jar: Gestione persistente dei cookie per mantenere sessioni HTTP
Comandi curl personalizzati: Esecuzione di comandi curl con controllo completo
Test di autenticazione: Verifica delle credenziali di accesso
Configurazione avanzata: Timeout, redirect, SSL/TLS, headers personalizzati
Related MCP server: curl-mcp
Installazione
Clona o scarica il progetto
Installa le dipendenze:
npm installInstallazione globale per utilizzo con npx
Per utilizzare il server con npx, puoi:
Installare localmente e linkare:
npm linkPubblicare su npm (se vuoi condividerlo):
npm publishUtilizzare direttamente da una cartella locale:
npm pack
npm install -g ./curl-mcp-server-1.0.0.tgzStrumenti Disponibili
1. http_get
Esegue richieste HTTP GET
Parametri: url, headers, auth, timeout, followRedirects, insecure, cookieJar
2. http_post
Esegue richieste HTTP POST
Parametri: url, data, headers, auth, contentType, timeout, followRedirects, insecure, cookieJar
3. http_put
Esegue richieste HTTP PUT
Parametri: url, data, headers, auth, contentType, timeout, followRedirects, insecure, cookieJar
4. http_delete
Esegue richieste HTTP DELETE
Parametri: url, headers, auth, timeout, followRedirects, insecure, cookieJar
5. http_patch
Esegue richieste HTTP PATCH
Parametri: url, data, headers, auth, contentType, timeout, followRedirects, insecure, cookieJar
6. http_head
Esegue richieste HTTP HEAD
Parametri: url, headers, auth, timeout, followRedirects, insecure, cookieJar
7. curl_custom
Esegue comandi curl personalizzati
Parametri: args (array di argomenti curl)
8. http_upload
Carica file tramite HTTP POST
Parametri: url, filePath, fieldName, headers, auth, timeout, insecure, cookieJar
9. http_download
Scarica file tramite HTTP GET
Parametri: url, outputPath, headers, auth, timeout, followRedirects, insecure, cookieJar
10. auth_test
Testa i metodi di autenticazione
Parametri: url, auth, timeout, insecure
Metodi di Autenticazione Supportati
Bearer Token
{
"type": "bearer",
"token": "your-jwt-token"
}Basic Authentication
{
"type": "basic",
"username": "user",
"password": "password"
}Digest Authentication
{
"type": "digest",
"username": "user",
"password": "password"
}OAuth2 Token
{
"type": "oauth2",
"token": "your-oauth2-token"
}API Key in Header
{
"type": "api_key",
"key": "X-API-Key",
"value": "your-api-key"
}Custom Authorization
{
"type": "custom",
"header": "Authorization: Custom token123"
}Cookie Jar per Gestione Sessioni
Il server supporta la gestione persistente dei cookie tramite cookie jar, utile per mantenere sessioni HTTP tra più richieste.
Utilizzo
Specifica il parametro cookieJar con il percorso di un file che verrà usato per salvare e caricare i cookie:
{
"tool": "http_get",
"arguments": {
"url": "https://example.com/api/protected",
"cookieJar": "/tmp/session-cookies.txt"
}
}Il cookie jar:
Salva automaticamente i cookie ricevuti dal server
Riutilizza i cookie nelle richieste successive
Permette di mantenere sessioni autenticate senza dover passare token ad ogni richiesta
È compatibile con il formato Netscape cookie file usato da curl
Configurazione per Client MCP
Per Claude Desktop (con npx)
Aggiungi questa configurazione al file di configurazione di Claude Desktop per utilizzare il server tramite npx:
{
"mcpServers": {
"curl-mcp": {
"command": "npx",
"args": [
"curl-mcp-server"
]
}
}
}Per Claude Desktop (locale)
Aggiungi questa configurazione al file di configurazione di Claude Desktop per utilizzare il server locale:
{
"mcpServers": {
"curl-mcp": {
"command": "node",
"args": ["e:\\MCP_servers\\curl-mcp\\index.js"],
"env": {}
}
}
}Per altri client MCP
Usa la configurazione seguente:
{
"name": "curl-mcp-server",
"version": "1.0.0",
"command": "node",
"args": ["percorso/assoluto/al/index.js"],
"transport": "stdio"
}Esempi di Utilizzo
Richiesta GET semplice
// Attraverso il client MCP
{
"tool": "http_get",
"arguments": {
"url": "https://api.example.com/data"
}
}Richiesta POST con autenticazione Bearer
{
"tool": "http_post",
"arguments": {
"url": "https://api.example.com/data",
"data": "{\"name\": \"test\"}",
"auth": {
"type": "bearer",
"token": "your-jwt-token"
},
"headers": {
"Content-Type": "application/json"
}
}
}Upload di file
{
"tool": "http_upload",
"arguments": {
"url": "https://api.example.com/upload",
"filePath": "/path/to/file.jpg",
"fieldName": "image",
"auth": {
"type": "api_key",
"key": "X-API-Key",
"value": "your-api-key"
}
}
}Comando curl personalizzato
{
"tool": "curl_custom",
"arguments": {
"args": ["-X", "PATCH", "-H", "Content-Type: application/json", "-d", "{\"status\": \"active\"}", "https://api.example.com/users/123"]
}
}Risorse Disponibili
Il server fornisce risorse informative accessibili tramite:
http://info/tools- Lista degli strumenti disponibilihttp://info/auth- Tipi di autenticazione supportatihttp://info/examples- Esempi di utilizzo dell'autenticazione
Avvio del Server
Modalità normale
npm startModalità sviluppo (con watch)
npm run devRequisiti di Sistema
Node.js 18 o superiore
curl installato e disponibile nel PATH del sistema
Accesso di rete per le richieste HTTP/HTTPS
Sicurezza
Tutti i comandi curl sono eseguiti in modo sicuro utilizzando spawn
Supporto per SSL/TLS con opzione per connessioni insicure quando necessario
Validazione degli input tramite schema Zod
Gestione degli errori per prevenire crash del server
Troubleshooting
Errore "curl: command not found"
Assicurati che curl sia installato e disponibile nel PATH:
Windows: Installa curl o usa Windows Subsystem for Linux
macOS: curl è preinstallato
Linux:
sudo apt-get install curl(Ubuntu/Debian) o equivalente
Timeout delle richieste
Aumenta il valore del timeout nei parametri degli strumenti se necessario (default: 30 secondi per la maggior parte delle operazioni, 60 per upload, 300 per download).
Problemi SSL/TLS
Usa il parametro insecure: true per bypassare la verifica dei certificati SSL (solo per testing).
Licenza
MIT License - Vedi il file LICENSE per i dettagli.
Available Tools
10 toolsauth_testC
Test different authentication methods with a simple GET request
| Name | Required | Description | Default |
|---|---|---|---|
| url | Yes | The URL to test authentication against | |
| auth | Yes | Authentication configuration | |
| timeout | No | Request timeout in seconds (default: 30) | |
| insecure | No | Allow insecure SSL connections (default: false) |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries the full behavioral burden and does not meet it. It never says what 'test' returns (a boolean, status code, full body?), whether a real outbound request is made (with possible logging or rate-limit side effects on the target), or how credentials and the insecure flag are handled. For an un-annotated tool that transmits secrets, this is a significant gap.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
A single front-loaded sentence with no filler or repetition. It is efficient, though arguably it is too terse for a tool with nested credential parameters and no annotations.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
There is no output schema and no annotations, so the description would need to explain results, safety profile, and request semantics – none of which it does. With a nested auth object and an insecure flag, the one-line description leaves too much unstated for an agent to call it correctly.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so the schema already documents every parameter and the nested auth object, giving a baseline of 3. The description adds no format or usage detail beyond the schema – it only gestures at the concept of 'authentication methods'.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description states a specific verb (test) and resource (authentication methods) and specifies the transport is a simple GET request, which distinguishes it somewhat from the write-oriented siblings. However, it does not differentiate itself from http_get, which is the obvious overlapping alternative, so an agent cannot tell from the text alone why it would pick auth_test.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No when-to-use guidance, prerequisites, or named alternatives are given. The tool overlaps heavily with the HTTP verb siblings (http_get in particular), yet the description never explains the condition that should route an agent here instead. Usage must be fully inferred.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
curl_customC
Execute a custom curl command with full control over parameters
| Name | Required | Description | Default |
|---|---|---|---|
| args | Yes | Array of curl arguments (without 'curl' command itself) |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries the full behavioral burden, and it discloses almost nothing. 'Full control over parameters' hints that arbitrary curl arguments are accepted, but the description never states whether the command is sandboxed, whether it can perform destructive or non-idempotent operations (e.g. -X DELETE, -o file writes, @file uploads), what auth context it inherits, or any rate/scope limits. For an effectively arbitrary-command execution tool, this is a serious disclosure gap.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
A single front-loaded sentence with no filler or redundancy. It is efficiently worded, though its brevity contributes to the gaps noted in other dimensions rather than earning extra credit here.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
This is a high-complexity, high-risk tool (arbitrary network/command execution) with no annotations and no output schema. The description omits the safety profile, execution constraints, authentication context, and how results are returned, leaving the agent unable to judge risk or expected behavior before invoking it.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100% and there is a single required parameter whose meaning ('array of curl arguments without the curl command itself') is fully documented in the schema. The description adds no syntax, format, or example detail beyond that, so the baseline of 3 applies.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description states a clear verb and resource: 'Execute a custom curl command', which an agent can understand without opening the schema. However, it makes no attempt to distinguish this from the nine sibling HTTP tools (http_get, http_post, http_delete, etc.), so an agent must guess why it would choose raw curl over a typed wrapper.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
There is no guidance on when to use this tool versus the numerous siblings that cover the same protocols (http_get, http_post, http_put, http_delete, http_upload). No prerequisites, no exclusions, no mention of when raw argument control is preferable to a structured HTTP tool.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
http_deleteC
Perform an HTTP DELETE request using curl
| Name | Required | Description | Default |
|---|---|---|---|
| url | Yes | The URL to make the DELETE request to | |
| auth | No | Authentication configuration | |
| headers | No | Optional headers to include | |
| timeout | No | Request timeout in seconds (default: 30) | |
| insecure | No | Allow insecure SSL connections (default: false) | |
| followRedirects | No | Follow redirects (default: true) |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries the full behavioral burden. It only notes the underlying implementation ('using curl') and says nothing about destructive semantics, whether a request body is supported, auth requirements beyond the schema, or what the response looks like, which is a notable gap for a DELETE operation.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
A single short sentence with no wasted words, and it is front-loaded with the core purpose. It is efficient, though the brevity borders on under-specification rather than being optimally informative.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
With 6 parameters, a nested auth object, no annotations, and no output schema, this tool needs more descriptive context than one sentence. The description omits destructive/irreversibility disclosure, auth flow explanation, and response behavior, leaving it inadequate for the tool's complexity.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, with each parameter (url, auth, headers, timeout, insecure, followRedirects) documented inline, so the schema does the heavy lifting. The description adds no parameter meaning beyond that, matching the baseline of 3.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description states a specific HTTP verb and resource ('HTTP DELETE request'), making the operation unambiguous and implicitly distinguishing it from the http_get/http_post/http_put/http_patch siblings. It does not, however, explicitly name which sibling to prefer or when, so it falls short of a 5.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
There is no guidance on when to choose this tool over http_post, http_put, http_patch, or curl_custom, nor any prerequisites or exclusions. The reader is left to infer usage purely from the HTTP method name.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
http_downloadC
Download a file using curl
| Name | Required | Description | Default |
|---|---|---|---|
| url | Yes | The URL to download from | |
| auth | No | Authentication configuration | |
| headers | No | Optional headers to include | |
| timeout | No | Request timeout in seconds (default: 300) | |
| insecure | No | Allow insecure SSL connections (default: false) | |
| outputPath | Yes | Path where to save the downloaded file | |
| followRedirects | No | Follow redirects (default: true) |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries the full behavioral burden and delivers almost nothing beyond "curl": no mention of how auth failures surface, whether the file is overwritten, what happens on timeout, or the safety implications of the insecure flag. The only disclosure is the underlying curl implementation.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The single sentence is front-loaded and waste-free, which is good, but at this length the sparseness reflects under-specification rather than disciplined concision for a 7-parameter tool with a nested auth object.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a tool with 7 parameters, a nested authentication object, and no annotations or output schema, the description is far too thin. It never explains auth modes, disk-write behavior, or the relationship to sibling HTTP tools, leaving major gaps an agent must guess at.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so every parameter including the nested auth object is already documented in the schema. The description adds nothing beyond the schema, so the baseline of 3 applies.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description states a specific verb and resource ("Download a file") and names the mechanism (curl), so the purpose is unambiguous. However, it does nothing to distinguish this from siblings like http_get or http_upload, which the agent must disambiguate on its own.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
There is no guidance on when to use this over http_get, http_upload, or curl_custom. The agent is left to infer that this tool saves to disk while http_get may not, and no exclusions or prerequisites are stated.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
http_getB
Perform an HTTP GET request using curl
| Name | Required | Description | Default |
|---|---|---|---|
| url | Yes | The URL to make the GET request to | |
| auth | No | Authentication configuration | |
| headers | No | Optional headers to include | |
| timeout | No | Request timeout in seconds (default: 30) | |
| insecure | No | Allow insecure SSL connections (default: false) | |
| followRedirects | No | Follow redirects (default: true) |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries the full behavioral burden, and it discloses almost nothing. It notes the curl implementation but says nothing about error behavior on non-2xx responses, redirect handling semantics, SSL verification implications, or what the response contains. That is a significant gap for a 6-parameter network tool.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
A single short sentence with the verb and resource front-loaded, and zero wasted words. It is arguably thin for a tool with a nested auth object, but it is not padded or repetitive.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given 100% schema coverage and no output schema, the description's thinness is mitigated by rich structured parameter documentation. Still, an agent gets no sense of what a successful call returns, what happens on failure, or how auth failures surface.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so the schema already documents every parameter including the nested auth object, timeout default, and redirect behavior. The description adds no parameter meaning beyond the schema, so the baseline 3 applies.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description states a specific verb and resource ('Perform an HTTP GET request') and adds the implementation detail ('using curl'). It is clear what the tool does, but it offers no differentiation from siblings like http_head or curl_custom, relying on the agent to infer the distinction from names alone.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
There is no guidance on when to use this versus http_post, http_head, curl_custom, or other siblings, and no mention of prerequisites or conditions. The agent must infer usage entirely from the tool name and the sibling list.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
http_headC
Perform an HTTP HEAD request using curl
| Name | Required | Description | Default |
|---|---|---|---|
| url | Yes | The URL to make the HEAD request to | |
| auth | No | Authentication configuration | |
| headers | No | Optional headers to include | |
| timeout | No | Request timeout in seconds (default: 30) | |
| insecure | No | Allow insecure SSL connections (default: false) | |
| followRedirects | No | Follow redirects (default: true) |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description bears full behavioral burden, yet it only restates the operation. It never explains that HEAD returns headers without a body, how redirects or timeouts behave (left only to schema defaults), or the safety/read-only nature of the call.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
A single front-loaded sentence with no wasted words, though it is arguably too terse for a six-parameter tool with a nested auth object.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a tool with six parameters, a nested auth configuration, and no annotations or output schema, a one-line description is insufficient. Key behavioral facts such as the bodyless nature of HEAD responses and the reliance on schema defaults are missing.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so every parameter including the nested auth object is documented in the schema. The description adds no additional meaning, which is the correct baseline when the schema does the heavy lifting.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description states a specific verb (HEAD request) and resource (HTTP), and HEAD is a distinct HTTP method that separates it from http_get and the other method siblings. However, it offers no explicit differentiation from the many sibling HTTP tools and adds an irrelevant implementation detail ('using curl').
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
There is no guidance on when to use this versus http_get, http_post, or curl_custom, and no statement of conditions or exclusions. The agent must infer that HEAD is for metadata-only retrieval on its own.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
http_patchC
Perform an HTTP PATCH request using curl
| Name | Required | Description | Default |
|---|---|---|---|
| url | Yes | The URL to make the PATCH request to | |
| auth | No | Authentication configuration | |
| data | No | Request body data | |
| headers | No | Optional headers to include | |
| timeout | No | Request timeout in seconds (default: 30) | |
| insecure | No | Allow insecure SSL connections (default: false) | |
| contentType | No | Content-Type header (default: application/json) | |
| followRedirects | No | Follow redirects (default: true) |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries the full behavioral burden, and it discloses almost nothing. Mentioning 'using curl' is a minor implementation hint, but there is no statement about mutation side effects, idempotency, whether the body is required, how errors or redirects are surfaced, or what a PATCH does to server state.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
A single front-loaded sentence with no filler. It is efficient, though the terseness leaves the gaps above unaddressed rather than earning extra credit.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For an 8-parameter tool with a nested auth object and no output schema, the one-line description is under-specified. It does not describe the response (which the missing output schema would otherwise require) or how the auth configuration actually applies to the request.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, including the nested auth object and defaults for timeout, contentType, insecure, and followRedirects. The description adds no syntax or format detail beyond that, so the baseline 3 for a fully documented schema is appropriate.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description states a specific verb (PATCH) and resource (HTTP request) and names the implementation mechanism (curl). Against a sibling set that is itself a family of HTTP methods (http_get, http_post, http_put, http_delete), the method name alone differentiates it, but the description never explains how PATCH differs from PUT or POST, so sibling routing is inferred rather than stated.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
There is no when-to-use guidance and no exclusions. An agent gets no help deciding between http_patch, http_put, and curl_custom, and no prerequisites (auth requirements, partial-update semantics versus full replacement) are given.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
http_postC
Perform an HTTP POST request using curl
| Name | Required | Description | Default |
|---|---|---|---|
| url | Yes | The URL to make the POST request to | |
| auth | No | Authentication configuration | |
| data | No | Request body data | |
| headers | No | Optional headers to include | |
| timeout | No | Request timeout in seconds (default: 30) | |
| insecure | No | Allow insecure SSL connections (default: false) | |
| contentType | No | Content-Type header (default: application/json) | |
| followRedirects | No | Follow redirects (default: true) |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries the full burden, and 'using curl' is the only behavioral hint (implying a subprocess-based request). It says nothing about return format, error handling, timeout/redirect defaults, or what happens with the insecure flag, all of which matter for an HTTP client tool.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
A single short sentence is concise and front-loaded, with no wasted words, but for a tool with 8 parameters and a nested auth object it is arguably under-specified rather than efficiently concise.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given 8 parameters, a nested auth configuration, no annotations, and no output schema, a one-line description leaves too much unexplained. An agent gets no help on return values, error behavior, or how the auth object should be populated.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so all 8 parameters including the nested auth object are documented in the schema itself. The description adds no parameter meaning beyond that, making the baseline 3 appropriate.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description states a specific verb and resource ('HTTP POST request'), which is clearer than the bare name, but it largely restates the tool name http_post and adds no differentiation from siblings such as http_put or http_patch beyond the implied method.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
There is no guidance on when to use this tool versus the many siblings (http_get, http_put, http_patch, curl_custom, etc.), no mention of prerequisites, and no exclusions. The agent must infer everything from the method name.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
http_putC
Perform an HTTP PUT request using curl
| Name | Required | Description | Default |
|---|---|---|---|
| url | Yes | The URL to make the PUT request to | |
| auth | No | Authentication configuration | |
| data | No | Request body data | |
| headers | No | Optional headers to include | |
| timeout | No | Request timeout in seconds (default: 30) | |
| insecure | No | Allow insecure SSL connections (default: false) | |
| contentType | No | Content-Type header (default: application/json) | |
| followRedirects | No | Follow redirects (default: true) |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries the full burden. It discloses only the implementation detail ('using curl') and omits that PUT is a mutating, idempotent write operation, whether auth is required, or what side effects occur on the remote resource.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
A single front-loaded sentence with zero waste. It is efficient but borders on under-specification rather than true economy of information.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a tool with 8 parameters including a nested auth configuration, timeout, and insecure-SSL flag, and with no annotations to carry the safety profile, one sentence is inadequate. The absence of an output schema excuses explaining return values, but the mutating nature and auth expectations are left entirely implicit.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so all 8 parameters (including the nested auth object) are already documented in the schema. The description adds no syntax, format, or default information beyond what the schema provides, so the baseline 3 applies.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb (PUT) and resource (HTTP request), and the method semantics distinguish it from siblings like http_get and http_post by name alone. However, the description itself adds nothing to differentiate real alternatives such as http_patch or http_upload, so it stops short of a 5.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No statement of when to use PUT versus siblings such as http_post, http_patch, or curl_custom. The description gives no context, prerequisites, or exclusions; the only signal is the HTTP verb in the name.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
http_uploadC
Upload a file using HTTP POST with curl
| Name | Required | Description | Default |
|---|---|---|---|
| url | Yes | The URL to upload the file to | |
| auth | No | Authentication configuration | |
| headers | No | Optional headers to include | |
| timeout | No | Request timeout in seconds (default: 60) | |
| filePath | Yes | Path to the file to upload | |
| insecure | No | Allow insecure SSL connections (default: false) | |
| fieldName | No | Form field name for the file (default: file) |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries the full burden, yet it says only 'HTTP POST with curl.' It omits whether the upload is multipart/form-data (implied only by fieldName), how auth failures behave, whether SSL verification can be disabled, or default timeout behavior. The default timeout/insecure semantics exist only in the schema, not the description.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
A single front-loaded sentence with no wasted words. It is efficient, though arguably too sparse given the tool's behavioral surface.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
With no output schema and no annotations, the description should carry the behavioral load, but for a 7-parameter tool with a nested auth object it stays at one sentence. The schema covers parameter meaning, so it is minimally adequate, but the agent gets no guidance on defaults, auth flow, or result shape.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so the schema already documents all seven parameters including the nested auth object, timeout, insecure, and fieldName. The description adds no syntax or format meaning beyond what the schema provides, so the baseline of 3 applies.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a clear verb (Upload) and resource (a file) plus the transport mechanism (HTTP POST with curl). It is distinguishable from the opposite-direction http_download, but it does not explicitly differentiate itself from siblings like http_post or curl_custom that could also send a file.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description gives no when-to-use guidance, no prerequisites (e.g., auth needed), and no statement about when to prefer this over http_post, http_put, or curl_custom. Usage is only weakly implied by the word 'upload'.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
Tool Schema Changelog
Recent tool additions, removals, and schema changes observed during successful MCP inspections.
10 tool updates
v1.0.0- First observed
auth_test - First observed
curl_custom - First observed
http_delete - First observed
http_download - First observed
http_get - First observed
http_head - First observed
http_patch - First observed
http_post - First observed
http_put - First observed
http_upload
TDQS
Scored across 10 tools
The HTTP verb tools (http_get, http_post, http_put, http_delete, http_patch, http_head) are clearly distinct by method. http_upload overlaps somewhat with http_post and http_download with http_get, and curl_custom duplicates the entire surface as a catch-all, but the descriptions clarify intent well enough.
Most tools follow a clear http_<method> snake_case pattern. http_upload, http_download, auth_test, and curl_custom deviate from that pattern but remain readable and consistently snake_case, so the set is coherent.
Ten tools is well-scoped for a curl wrapper: one per HTTP method plus targeted helpers for upload, download, auth testing, and a custom escape hatch.
The surface covers all common HTTP methods plus file transfer and auth testing, and curl_custom fills any remaining gaps like OPTIONS/TRACE or exotic flags. Minor overlap rather than a true missing capability.
Maintenance
Related MCP Connectors
Mock REST APIs, fake OAuth2/OIDC provider, uptime monitors + heartbeats, live badge/QR images.
QuLab MCP remote server (Streamable HTTP) for computational science and lab tools.
Host your MCP tool over streamable HTTP in one command.
Secure tunneling, reverse proxy and remote access for local applications.
Related MCP Servers
- AlicenseAqualityDmaintenanceA comprehensive HTTP client MCP server for security testing, API testing, and web automation that provides full-featured HTTP tools with detailed logging capabilities.89MIT
- AlicenseNot gradedqualityCmaintenanceProvides a structured HTTP client tool for making web requests with full HTTP method support, detailed response metadata, and error handling. Enables AI assistants to interact with any web API or endpoint through the curl_request tool.8 npm2MIT
- AlicenseAqualityAmaintenanceEnables LLMs to make HTTP requests using structured cURL commands with support for multiple authentication methods, custom headers, and comprehensive request/response control.29 npm3MIT
- AlicenseNot gradedqualityDmaintenanceAn MCP server that provides HTTP client capabilities with browser impersonation for Chrome, Firefox, Safari, and Edge across multiple operating systems. It enables tools for making authenticated web requests, handling multipart file uploads, and retrieving responses in various formats.MIT