Skip to main content
Glama
Gabry848

Curl MCP Server

by Gabry848

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

  1. Clona o scarica il progetto

  2. Installa le dipendenze:

npm install

Installazione globale per utilizzo con npx

Per utilizzare il server con npx, puoi:

  1. Installare localmente e linkare:

npm link
  1. Pubblicare su npm (se vuoi condividerlo):

npm publish
  1. Utilizzare direttamente da una cartella locale:

npm pack
npm install -g ./curl-mcp-server-1.0.0.tgz

Strumenti 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"
}

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 disponibili

  • http://info/auth - Tipi di autenticazione supportati

  • http://info/examples - Esempi di utilizzo dell'autenticazione

Avvio del Server

Modalità normale

npm start

Modalità sviluppo (con watch)

npm run dev

Requisiti 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 tools
auth_testC

Test different authentication methods with a simple GET request

ParametersJSON Schema
NameRequiredDescriptionDefault
urlYesThe URL to test authentication against
authYesAuthentication configuration
timeoutNoRequest timeout in seconds (default: 30)
insecureNoAllow insecure SSL connections (default: false)

TDQS

C2.9/5.0
Behavior2/5

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.

Conciseness4/5

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.

Completeness2/5

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.

Parameters3/5

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.

Purpose4/5

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.

Usage Guidelines2/5

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

ParametersJSON Schema
NameRequiredDescriptionDefault
argsYesArray of curl arguments (without 'curl' command itself)

TDQS

C2.9/5.0
Behavior2/5

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.

Conciseness4/5

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.

Completeness2/5

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.

Parameters3/5

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.

Purpose4/5

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.

Usage Guidelines2/5

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

ParametersJSON Schema
NameRequiredDescriptionDefault
urlYesThe URL to make the DELETE request to
authNoAuthentication configuration
headersNoOptional headers to include
timeoutNoRequest timeout in seconds (default: 30)
insecureNoAllow insecure SSL connections (default: false)
followRedirectsNoFollow redirects (default: true)

TDQS

C2.9/5.0
Behavior2/5

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.

Conciseness4/5

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.

Completeness2/5

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.

Parameters3/5

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.

Purpose4/5

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.

Usage Guidelines2/5

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

ParametersJSON Schema
NameRequiredDescriptionDefault
urlYesThe URL to download from
authNoAuthentication configuration
headersNoOptional headers to include
timeoutNoRequest timeout in seconds (default: 300)
insecureNoAllow insecure SSL connections (default: false)
outputPathYesPath where to save the downloaded file
followRedirectsNoFollow redirects (default: true)

TDQS

C2.8/5.0
Behavior2/5

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.

Conciseness3/5

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.

Completeness2/5

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.

Parameters3/5

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.

Purpose4/5

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.

Usage Guidelines2/5

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

ParametersJSON Schema
NameRequiredDescriptionDefault
urlYesThe URL to make the GET request to
authNoAuthentication configuration
headersNoOptional headers to include
timeoutNoRequest timeout in seconds (default: 30)
insecureNoAllow insecure SSL connections (default: false)
followRedirectsNoFollow redirects (default: true)

TDQS

B3.1/5.0
Behavior2/5

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.

Conciseness4/5

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.

Completeness4/5

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.

Parameters3/5

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.

Purpose4/5

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.

Usage Guidelines2/5

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

ParametersJSON Schema
NameRequiredDescriptionDefault
urlYesThe URL to make the HEAD request to
authNoAuthentication configuration
headersNoOptional headers to include
timeoutNoRequest timeout in seconds (default: 30)
insecureNoAllow insecure SSL connections (default: false)
followRedirectsNoFollow redirects (default: true)

TDQS

C2.9/5.0
Behavior2/5

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.

Conciseness4/5

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.

Completeness2/5

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.

Parameters3/5

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.

Purpose4/5

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.

Usage Guidelines2/5

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

ParametersJSON Schema
NameRequiredDescriptionDefault
urlYesThe URL to make the PATCH request to
authNoAuthentication configuration
dataNoRequest body data
headersNoOptional headers to include
timeoutNoRequest timeout in seconds (default: 30)
insecureNoAllow insecure SSL connections (default: false)
contentTypeNoContent-Type header (default: application/json)
followRedirectsNoFollow redirects (default: true)

TDQS

C2.9/5.0
Behavior2/5

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.

Conciseness4/5

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.

Completeness2/5

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.

Parameters3/5

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.

Purpose4/5

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.

Usage Guidelines2/5

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

ParametersJSON Schema
NameRequiredDescriptionDefault
urlYesThe URL to make the POST request to
authNoAuthentication configuration
dataNoRequest body data
headersNoOptional headers to include
timeoutNoRequest timeout in seconds (default: 30)
insecureNoAllow insecure SSL connections (default: false)
contentTypeNoContent-Type header (default: application/json)
followRedirectsNoFollow redirects (default: true)

TDQS

C2.5/5.0
Behavior2/5

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.

Conciseness3/5

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.

Completeness2/5

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.

Parameters3/5

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.

Purpose3/5

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.

Usage Guidelines2/5

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

ParametersJSON Schema
NameRequiredDescriptionDefault
urlYesThe URL to make the PUT request to
authNoAuthentication configuration
dataNoRequest body data
headersNoOptional headers to include
timeoutNoRequest timeout in seconds (default: 30)
insecureNoAllow insecure SSL connections (default: false)
contentTypeNoContent-Type header (default: application/json)
followRedirectsNoFollow redirects (default: true)

TDQS

C2.9/5.0
Behavior2/5

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.

Conciseness4/5

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.

Completeness2/5

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.

Parameters3/5

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.

Purpose4/5

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.

Usage Guidelines2/5

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

ParametersJSON Schema
NameRequiredDescriptionDefault
urlYesThe URL to upload the file to
authNoAuthentication configuration
headersNoOptional headers to include
timeoutNoRequest timeout in seconds (default: 60)
filePathYesPath to the file to upload
insecureNoAllow insecure SSL connections (default: false)
fieldNameNoForm field name for the file (default: file)

TDQS

C2.9/5.0
Behavior2/5

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.

Conciseness4/5

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.

Completeness3/5

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.

Parameters3/5

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.

Purpose4/5

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.

Usage Guidelines2/5

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.

  1. 10 tool updatesv1.0.0
    • First observedauth_test
    • First observedcurl_custom
    • First observedhttp_delete
    • First observedhttp_download
    • First observedhttp_get
    • First observedhttp_head
    • First observedhttp_patch
    • First observedhttp_post
    • First observedhttp_put
    • First observedhttp_upload

TDQS

B3.2/5.0

Scored across 10 tools

Disambiguation4/5

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.

Naming Consistency4/5

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.

Tool Count5/5

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.

Completeness4/5

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

ActivityInactive
ResponsivenessNo issues

Related MCP Connectors

Related MCP Servers

  • A
    license
    Not graded
    quality
    C
    maintenance
    Provides 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 npm
    2
    MIT
  • A
    license
    A
    quality
    A
    maintenance
    Enables LLMs to make HTTP requests using structured cURL commands with support for multiple authentication methods, custom headers, and comprehensive request/response control.
    2
    9 npm
    3
    MIT
  • A
    license
    Not graded
    quality
    D
    maintenance
    An 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