toolforte
What this MCP does
Provides validation, calculation, conversion, text-processing, document, and workflow tools accessible through search and execution.
Tools
Input schema
{'type': 'object', 'required': ['amount', 'rate', 'mode'], 'properties': {'mode': {'enum': ['add', 'extract'], 'type': 'string', 'description': 'add = amount is net, add VAT on top; extract = amount is gross, split out VAT'}, 'rate': {'type': 'number', 'maximum': 100, 'minimum': 0, 'description': 'VAT rate in percent'}, 'amount': {'type': 'number', 'minimum': 0, 'description': 'The amount'}}}
Output schema
{'type': 'object', 'properties': {'net': {'type': 'number'}, 'vat': {'type': 'number'}, 'rate': {'type': 'number'}, 'gross': {'type': 'number'}, 'result': {'description': 'The result, when it is not an object'}}, 'additionalProperties': {}}
Input schema
{'type': 'object', 'required': ['csv'], 'properties': {'csv': {'type': 'string', 'maxLength': 200000, 'description': 'The CSV text; the delimiter is detected automatically'}, 'firstRowHeaders': {'type': 'boolean', 'default': True, 'description': 'Treat the first row as column names and return objects (default true)'}}}
Output schema
{'type': 'object', 'properties': {'json': {'type': 'array', 'items': {}}, 'result': {'description': 'The result, when it is not an object'}, 'delimiter': {'type': 'string'}, 'row_count': {'type': 'number'}}, 'additionalProperties': {}}
Input schema
{'type': 'object', 'required': ['name'], 'properties': {'name': {'type': 'string', 'maxLength': 80, 'description': 'The tool name, for example validate_iban'}}}
Output schema
{'type': 'object', 'properties': {'name': {'type': 'string'}, 'title': {'type': 'string', 'description': 'Page title'}, 'listed': {'type': 'boolean'}, 'result': {'description': 'The result, when it is not an object'}, 'credits': {'type': 'number'}, 'example': {'type': 'object', 'properties': {'name': {'type': 'string'}, 'arguments': {'type': 'object', 'properties': {'iban': {'type': 'string'}}, 'additionalProperties': {}}}, 'additionalProperties': {}}, 'annotations': {'type': 'object', 'properties': {'readOnlyHint': {'type': 'boolean'}}, 'additionalProperties': {}}, 'description': {'type': 'string'}, 'inputSchema': {'type': 'object', 'properties': {'type': {'type': 'string'}, 'properties': {'type': 'object', 'properties': {}, 'additionalProperties': {}}}, 'additionalProperties': {}}, 'outputSchema': {'type': 'object', 'properties': {'type': {'type': 'string'}}, 'additionalProperties': {}}}, 'additionalProperties': {}}
Input schema
{'type': 'object', 'required': ['year'], 'properties': {'year': {'type': 'integer', 'maximum': 2200, 'minimum': 1900, 'description': 'Calendar year, 1900 to 2200'}}}
Output schema
{'type': 'object', 'properties': {'year': {'type': 'number'}, 'result': {'description': 'The result, when it is not an object'}, 'holidays': {'type': 'array', 'items': {}}}, 'additionalProperties': {}}
Input schema
{'type': 'object', 'required': ['json'], 'properties': {'json': {'type': 'string', 'maxLength': 200000, 'description': 'The JSON text to validate and format'}, 'indent': {'type': 'integer', 'default': 2, 'maximum': 8, 'minimum': 0, 'description': 'Spaces per indentation level, 0 to 8 (default 2)'}}}
Output schema
{'type': 'object', 'properties': {'valid': {'type': 'boolean', 'description': 'Whether the input passed every check'}, 'output': {'type': 'string', 'description': 'The final output of the workflow'}, 'result': {'description': 'The result, when it is not an object'}}, 'additionalProperties': {}}
Input schema
{'type': 'object', 'required': ['name'], 'properties': {'name': {'type': 'string', 'maxLength': 80, 'description': 'The tool name, for example calculate_vat'}, 'arguments': {'type': 'object', 'default': {}, 'description': "The tool's arguments, as describe_tool documents them", 'propertyNames': {'type': 'string'}, 'additionalProperties': {}}}}
Output schema
{'type': 'object', 'properties': {'result': {'description': 'The result, when it is not an object'}}, 'additionalProperties': {}}
Input schema
{'type': 'object', 'properties': {'limit': {'type': 'integer', 'default': 8, 'maximum': 50, 'minimum': 1, 'description': 'How many matches to return, 1 to 50 (default 8)'}, 'query': {'type': 'string', 'default': '', 'maxLength': 200, 'description': 'Words describing the job. Empty lists every tool the server has.'}}}
Output schema
{'type': 'object', 'properties': {'note': {'type': 'string'}, 'count': {'type': 'number', 'description': 'Number of items'}, 'query': {'type': 'string'}, 'tools': {'type': 'array', 'items': {}}, 'total': {'type': 'number'}, 'result': {'description': 'The result, when it is not an object'}}, 'additionalProperties': {}}
Input schema
{'type': 'object', 'required': ['pattern', 'text'], 'properties': {'text': {'type': 'string', 'maxLength': 20000, 'description': 'The text to run the expression against'}, 'flags': {'type': 'string', 'default': 'g', 'maxLength': 8, 'description': 'Regex flags such as g, i, m, s, u (default g)'}, 'pattern': {'type': 'string', 'maxLength': 1000, 'description': 'JavaScript regular expression source, without the slashes'}}}
Output schema
{'type': 'object', 'properties': {'count': {'type': 'number', 'description': 'Number of items'}, 'result': {'description': 'The result, when it is not an object'}, 'matches': {'type': 'array', 'items': {}}}, 'additionalProperties': {}}
Input schema
{'type': 'object', 'required': ['original', 'modified'], 'properties': {'modified': {'type': 'string', 'maxLength': 100000, 'description': 'The text after the change'}, 'original': {'type': 'string', 'maxLength': 100000, 'description': 'The text before the change'}}}
Output schema
{'type': 'object', 'properties': {'lines': {'type': 'array', 'items': {}}, 'stats': {'type': 'object', 'properties': {'added': {'type': 'number'}, 'removed': {'type': 'number'}, 'unchanged': {'type': 'number'}}, 'additionalProperties': {}}, 'result': {'description': 'The result, when it is not an object'}}, 'additionalProperties': {}}
Input schema
{'type': 'object', 'required': ['iban'], 'properties': {'iban': {'type': 'string', 'maxLength': 64, 'description': 'The IBAN to validate'}}}
Output schema
{'type': 'object', 'properties': {'iban': {'type': 'string'}, 'valid': {'type': 'boolean', 'description': 'Whether the input passed every check'}, 'result': {'description': 'The result, when it is not an object'}, 'country': {'type': 'string'}, 'bankCode': {'type': 'string'}, 'checkDigits': {'type': 'string'}, 'countryName': {'type': 'string'}, 'institution': {'type': 'object', 'properties': {'kind': {'type': 'string'}, 'name': {'type': 'string'}}, 'additionalProperties': {}}, 'accountNumber': {'type': 'string'}}, 'additionalProperties': {}}
Input schema
{'type': 'object', 'properties': {'limit': {'type': 'integer', 'default': 50, 'maximum': 200, 'minimum': 1, 'description': 'How many to return, newest first.'}}}
Output schema
{'type': 'object', 'properties': {'count': {'type': 'number', 'description': 'Number of items'}, 'result': {'description': 'The result, when it is not an object'}, 'workflows': {'type': 'array', 'items': {}, 'description': 'The workflows on the account'}}, 'additionalProperties': {}}
Input schema
{'type': 'object', 'required': ['goal'], 'properties': {'goal': {'type': 'string', 'maxLength': 1000, 'minLength': 8, 'description': 'The job to be done, in a sentence or two, for example: take a CSV of invoices, sum the amounts per customer and write the totals to a spreadsheet.'}, 'save': {'type': 'boolean', 'default': False, 'description': 'Save the proposed workflow to the account so workflow_run can run it. Default false: the proposal is returned for you to read first.'}}}
Output schema
{'type': 'object', 'properties': {'saved': {'type': 'object', 'properties': {'name': {'type': 'string'}, 'workflowId': {'type': 'string'}}, 'description': "The saved workflow's id and name, when save was true", 'additionalProperties': {}}, 'steps': {'type': 'array', 'items': {}, 'description': 'What each step produced'}, 'result': {'description': 'The result, when it is not an object'}, 'missing': {'type': 'array', 'items': {}, 'description': 'What could not be done, named'}, 'partial': {'type': 'boolean', 'description': 'Whether the workflow only does part of what was asked'}, 'definition': {'type': 'object', 'properties': {}, 'description': 'The proposed workflow: name, declared inputs and steps', 'additionalProperties': {}}, 'explanation': {'type': 'string', 'description': 'Plain words on what the workflow does and why each step is there'}, 'creditsCharged': {'type': 'number', 'description': 'Credits spent by this call'}}, 'additionalProperties': {}}
Input schema
{'type': 'object', 'required': ['workflowId'], 'properties': {'inputs': {'type': 'object', 'description': "Values for the workflow's declared inputs, keyed by the input key that workflow_list reports. Omit for a workflow that declares none.", 'propertyNames': {'type': 'string'}, 'additionalProperties': {}}, 'workflowId': {'type': 'string', 'maxLength': 100, 'description': 'The id of a workflow from workflow_list.'}}}
Output schema
{'type': 'object', 'properties': {'ok': {'type': 'boolean', 'description': 'Whether the run completed'}, 'name': {'type': 'string'}, 'runId': {'type': 'string'}, 'steps': {'type': 'array', 'items': {}, 'description': 'What each step produced'}, 'output': {'type': 'object', 'properties': {}, 'description': 'The final output of the workflow', 'additionalProperties': {}}, 'result': {'description': 'The result, when it is not an object'}, 'stepsRun': {'type': 'number'}, 'durationMs': {'type': 'number'}, 'workflowId': {'type': 'string'}, 'stepsDefined': {'type': 'number'}, 'creditsCharged': {'type': 'number', 'description': 'Credits spent by this call'}}, 'additionalProperties': {}}
Input schema
{'type': 'object', 'required': ['start', 'end'], 'properties': {'end': {'type': 'string', 'pattern': '^\\d{4}-\\d{2}-\\d{2}$', 'description': 'YYYY-MM-DD'}, 'start': {'type': 'string', 'pattern': '^\\d{4}-\\d{2}-\\d{2}$', 'description': 'YYYY-MM-DD'}, 'excludeDutchHolidays': {'type': 'boolean', 'default': True, 'description': 'Skip Dutch public holidays that fall on a weekday (default true)'}}}
Output schema
{'type': 'object', 'properties': {'end': {'type': 'string'}, 'start': {'type': 'string'}, 'result': {'description': 'The result, when it is not an object'}, 'totalDays': {'type': 'number'}, 'weekendDays': {'type': 'number'}, 'workingDays': {'type': 'number'}, 'holidaysExcluded': {'type': 'array', 'items': {}}}, 'additionalProperties': {}}
Recent tool changes
Similar MCP servers
2ools
Builds, versions, reviews, deploys, shares, and coordinates work on websites, web applications, and games through project workflo…
Kaiku
Manages team issues, comments, attachments, projects, wiki pages, and related development workflows.
SmartTools
Provides general-purpose calculators, unit converters, text and data transformations, hashing, code-generation helpers, and forma…
Wakatime
Provides WakaTime coding-activity data, including durations, projects, commits, goals, heartbeats, editor usage, leaders, and use…
TaskLite
Builds and manages hosted project backends, structured boards, REST APIs, automations, authentication access, databases, and fron…
Keelen
Manages autonomous software projects connected to GitHub, including repository setup, roadmap intake, task execution, scheduling,…
Linear
Manages and searches Linear teams and issues, including issue creation and detailed issue retrieval.
Jira
Searches Jira issues and retrieves project, issue, status, assignee, priority, comment, attachment, and linked-issue details.