Search / io.github.Toinedotcom/toolforte
toolforte
R0· no sign-inExact IBAN, VAT, cron, regex answers; HTML/URL to hosted PDF or screenshot; agent memory; workflows.
v1.11.0 · active · website · descriptor JSON · versions
Search / io.github.Toinedotcom/toolforte
R0· no sign-inExact IBAN, VAT, cron, regex answers; HTML/URL to hosted PDF or screenshot; agent memory; workflows.
v1.11.0 · active · website · descriptor JSON · versions
{
"mcpServers": {
"toolforte": {
"type": "http",
"url": "https://toolforte.com/api/mcp"
}
}
}claude mcp add --transport http toolforte https://toolforte.com/api/mcp[mcp_servers.toolforte]
url = "https://toolforte.com/api/mcp"
{
"$schema": "https://opencode.ai/config.json",
"mcp": {
"toolforte": {
"type": "remote",
"url": "https://toolforte.com/api/mcp",
"enabled": true
}
}
}{
"mcpServers": {
"toolforte": {
"type": "http",
"url": "https://toolforte.com/api/mcp"
}
},
"deeplink": "cursor://anysphere.cursor-deeplink/mcp/install?name=toolforte&config=eyJ0eXBlIjoiaHR0cCIsInVybCI6Imh0dHBzOi8vdG9vbGZvcnRlLmNvbS9hcGkvbWNwIn0%3D"
}{
"servers": {
"toolforte": {
"type": "http",
"url": "https://toolforte.com/api/mcp"
}
}
}{
"mcpServers": {
"toolforte": {
"httpUrl": "https://toolforte.com/api/mcp"
}
}
}extensions:
"toolforte":
enabled: true
name: "toolforte"
type: streamable_http
uri: "https://toolforte.com/api/mcp"
timeout: 300
protocol.modernsupports 2026-07-28 (server/discover)protocol.statelessanswers without a sessionprotocol.transportstreamable HTTPprotocol.list_ttltools/list declares ttlMs 0, so clients re-fetch it on every useauth.prm, auth.as_metadata, auth.cimdno remote uses OAuthauth.secret_in_urlno templated URLtools.descriptionsevery tool has a descriptiontools.description_length1 tools have descriptions over 1,024 characters, which crowds the contexttools.schemasevery tool has an object input schematools.annotations14 of 14 tools declare readOnlyHint or destructiveHinttools.directory_hintsevery tool declares readOnlyHint, destructiveHint, idempotentHint and openWorldHinttools.token_costabout 2,796 tokens to load every tooltools.api_dumptools are not a one-to-one API dumpstability.changesno tool changes in 30 daysstability.rug_pullno tool changed its meaning under the same namedeps.known_vulnsno known advisory in 98 resolved packagesdeps.mcp_sdk_version@modelcontextprotocol/sdk 1.30.1 has 1 known advisory (GHSA-6qxp-vccf-f47h); update @modelcontextprotocol/sdk to 1.31.0 or laterdeps.resolvable[email protected] resolved: 98 packagesNo tool definition changes recorded. A server's first observation is its baseline; later probes record what changes.
Checks run on what our credential-free, read-only probes observe; tools are never called and no code audit is performed. How it is computed.
+website +reachable +uptime-100% +updated-26d-ago -no-repository
Derived from observable signals (official registry feed and our own credential-free probes); no code audit performed. How it is computed.
[email protected] npm97 dependencies, resolved · MCP SDK @modelcontextprotocol/sdk 1.30.1 · advisories checked 2026-10-19
| advisory | severity | package | fixed in |
|---|---|---|---|
| GHSA-6qxp-vccf-f47hMCP TypeScript SDK: OAuth client could send credentials to an authorization server chosen by the MCP server | high | @modelcontextprotocol/[email protected]MCP SDK, direct | fixed in 1.31.0 |
Dependency graphs from deps.dev; advisories from OSV.dev, including the GitHub Advisory Database and the PyPI Advisory Database; all CC BY 4.0. The graph is what a clean install of this version resolves today; nothing was installed or run. How it is checked.
| remote | auth | reachable | uptime 30d | p50 | protocol | last ok |
|---|---|---|---|---|---|---|
https://toolforte.com/api/mcp streamable-http | none | yes | 100% | 932 ms | 2026-07-28 | 2026-10-19 |
| package | registry | version | runtime | secrets |
|---|---|---|---|---|
toolforte-mcp | npm | 0.3.0 | – | TOOLFORTE_API_KEY |
calculate_vatread-only | Add VAT to a net amount or extract VAT from a gross amount at any rate (e.g. 21 for Dutch BTW). Returns exact net, VAT, and gross amounts rounded to cents. |
csv_to_jsonread-only | Parse CSV data into JSON with delimiter auto-detection and quoted-field handling. |
describe_toolread-only | The full definition of one ToolForte tool by name: description, argument schema (JSON Schema), output schema, annotations, cost and an example call. Use it after search_tools when the argument summary is not enough. Free. |
dutch_public_holidaysread-only | Exact Dutch public holidays for a year, including movable feasts (Easter, Ascension, Whitsun) and King's Day rules. Use this instead of computing Dutch holidays yourself. |
format_jsonread-only | Validate and pretty-print JSON with a real parser. Returns formatted JSON or the exact parse error. |
run_tool | Run any ToolForte tool by name with its arguments, whether or not it is listed in this session. The result, the cost and the metering are exactly what the tool gives when called directly; run_tool itself is free. Find names with search_tools and schemas with describe_tool. |
search_toolsread-only | Find ToolForte tools by what you want done, for example "iban", "vat", "pdf merge", "working days", "csv to json", "screenshot". ToolForte has over a hundred exact tools (validation, conversion, Dutch tax and dates, test data, files, AI); a session lists a small core of them and this is how you reach the rest. Returns the best matches with their arguments and cost. Then call the tool by name, or through run_tool. Free. |
test_regexread-only | Run a JavaScript regular expression against a test string using a real regex engine. Returns all matches with capture groups and indices. |
text_diffread-only | Compute an exact line-based diff between two texts with add/remove/unchanged stats. |
validate_ibanread-only | Check whether an IBAN is well formed: the mod-97 checksum, the country code, the length that country's IBAN must have, and whether every position holds the kind of character that country allows there (mod-97 turns letters into numbers, so on its own it cannot see a capital O typed in place of a zero). Returns validity, country, and where known the bank identifier printed inside the IBAN. This is a format check, not a bank check: a passing IBAN can still name a bank code that never existed or has since merged away, and says nothing about whether the account exists or can receive a payment. For twelve countries it also verifies the national check digit that the bank computes over the bank code and account number (BE, FR, MC, ES, IT, SM, PT, SI, PL, TN, EE, HU); nationalCheck 'failed' there means the number is very probably invented, since that digit cannot be back-computed the way the mod-97 pair can. Absent nationalCheck means not checked, never approved. For Dutch IBANs it also names the institution behind the four-letter bank code, including codes that no longer issue accounts; an unrecognised code does not make the IBAN invalid. A territory that borrows another country's IBAN (Reunion, Guernsey, Aland and the like) is reported with the prefix it actually uses, since no IBAN starts with RE or GG. Never guess whether an IBAN is well formed: use this tool. Do not present a pass as confirmation that money can be sent. |
workflow_listread-only | List the workflows saved to the ToolForte account this API key belongs to. A workflow runs several ToolForte tools in order, passing each one the output of an earlier step, so it does a whole job in one call instead of you orchestrating the steps yourself. Returns each workflow's id, the inputs it expects, the steps it runs and what a run costs. Call this first: workflow_run needs an id from here. Requires an API key, because a workflow belongs to an account. Get a free key at https://toolforte.com/developers and send it on the MCP connection as the header Authorization: Bearer tf_... |
workflow_propose | Describe a job in plain words and get back a workflow built only from tools this server really has: a name, the inputs it needs, and the steps in order, each with one sentence on why it is there. The proposal is honest about gaps: partial is true and missing names what could not be done, and when nothing here fits the answer says so instead of inventing a step. Send save: true to keep it on the account, after which workflow_run can run it by the returned id. Costs 10 credits, the price of one AI generation, charged once per proposal. Requires an API key linked to a ToolForte account. Get a free key at https://toolforte.com/developers and send it on the MCP connection as the header Authorization: Bearer tf_... |
workflow_run | Run one saved workflow by id and return what every step produced. Get the id and the input keys from workflow_list. Each step costs the credits its own tool costs, normally 1 per step, and the credit for this call counts as the first step's rather than being charged on top. Steps run in order and stop at the first failure; the result says which step stopped it and what was spent up to that point. Check the "substitutions" field when it is present: it lists values a step supplied that the tool replaced with its own, which means the run succeeded on a value you did not send. Requires an API key, because a workflow belongs to an account. Get a free key at https://toolforte.com/developers and send it on the MCP connection as the header Authorization: Bearer tf_... |
working_days_betweenread-only | Count working days (Mon-Fri) between two dates inclusive, optionally excluding Dutch public holidays. Exact date math for SLA, payroll, and planning questions. |
Schemas: list_tools.
{
"name": "io.github.Toinedotcom/toolforte",
"$schema": "https://static.modelcontextprotocol.io/schemas/2025-12-11/server.schema.json",
"remotes": [
{
"url": "https://toolforte.com/api/mcp",
"type": "streamable-http"
}
],
"version": "1.11.0",
"packages": [
{
"version": "0.3.0",
"transport": {
"type": "stdio"
},
"identifier": "toolforte-mcp",
"registryType": "npm",
"registryBaseUrl": "https://registry.npmjs.org",
"environmentVariables": [
{
"name": "TOOLFORTE_API_KEY",
"isSecret": true,
"description": "Optional ToolForte API key (tf_...), sent as Authorization: Bearer on every request."
}
]
}
],
"websiteUrl": "https://toolforte.com/mcp",
"description": "Exact IBAN, VAT, cron, regex answers; HTML/URL to hosted PDF or screenshot; agent memory; workflows."
}