Skip to main content
Open and follow this company’s cases with Melso’s professionals: tax forms (modelo); for an autónomo, self-employed registration (alta) and annual income tax (renta); incorporating an S.L.; and any other kind that kinds lists with its details schema and price. Save drafts, send covered cases, exchange messages and documents, answer information requests and request changes. get includes the conversation, versions, request and documents, and for a case sold once what Melso paid on the customer’s behalf and its invoice. Approving a version and paying a case sold once stay with the owner in the web app; no action files a return or pays. Monetary amounts are EUR decimal strings unless named in cents. Each action accepts only its own fields (* required): list; get(id*); kinds; create(kind*, details*, attachment_ids, note, submit); submit(id*); message(id*, idempotency_key*, attachment_ids, changes, content); answer(id*, request_id*, answers*); request_approval(id*); cancel(id*); upload(filename*, content_type*, size_bytes*); upload_complete(upload_id*); document_get(id*, attachment_id*). Availability: Autónomo / Empresa. The live tool list is authoritative: the company’s plan and your role can narrow this contract. Understand access.

When to use

Use it when the person needs Melso’s professionals to do something: prepare and file a form (modelo), register as an autónomo (alta), the annual income tax return (renta) or incorporating an S.L. (constitucion_sl). Read kinds first: it says what this company can ask for, the details each kind needs and how it is paid. Then follow the case with get, answer what the professionals ask with answer, and give the owner the approval page with request_approval. A calculated return already has its own approval in taxes.

Input

Actions

The tool’s schema combines the fields of every action. Each action accepts only its own fields below; send action with them.

Read actions

These actions only read. They change nothing.
Read a document linked to this case, including a professional draft or receipt, as content_base64 with filename and content_type. Decode the bytes unchanged. At most 15 MB; larger documents are read in the authenticated web app.
Read one case with its conversation, versions, pending information request and documents, including drafts and filing receipts.
List the kinds of case this company can open: what each is, its details_schema (JSON Schema for create), whether the owner approves a draft, and how it is paid: payment.mode plan (included when payment.covered) or service (a one-off price, payment.amount_cents in EUR cents, paid by the owner in the web app before it is sent).
List the company’s cases, newest first, with status, kind, deadlines, current and approved versions, filing reference and tax-service coverage.

Case actions

These actions save, send or withdraw a case, or exchange messages and documents with Melso’s professionals. A draft needs no plan; sending a case needs a plan that covers it or, for a kind sold once, the owner’s payment in the web app. None approves a version, files or pays.
Answer every item in the case’s open information request and send it back to review. Read get first for request_id and item IDs; document items need an attachment and questions need an answer.
Withdraw a submitted case that Melso has not filed, after the person confirms. Preserves its conversation and documents. A linked authorized tax return goes back to draft and needs web authorization again.
Save a case draft of a kind from kinds, with details that match its details_schema; a refused field is named in the error. submit=true sends a plan kind when the tax service covers it; otherwise it stays a draft. A service kind is sent once the owner pays in the web app: submit then returns payment_url. Incorporating an S.L. (constitucion_sl) asked from a company that is not in incorporation opens the S.L.’s own company and saves the draft there, returning that company and its payment_url. This never accepts or approves a calculated return: use taxes request_approval for its web authorization. After an uncertain response, read list before creating again.
Send the person’s message or documents to a submitted case. Reuse idempotency_key only for retries. changes=true requests changes to a version awaiting approval and returns the case to review.
Return the current case version and authenticated web page where the owner reviews and approves it. Share approval_url. No MCP action approves, files or pays a return.
Send a saved draft to Melso when the person asked. A plan kind requires a plan covering the tax service. A service kind is not sent here: it returns payment_required with the payment_url where the owner pays in the web app, after which Melso receives it. Never approves a tax version or pays.
Reserve a local PDF or image of at most 15 MB: PUT its exact bytes to upload_url with the returned headers, then call upload_complete. Without file upload capability, share web_upload_url so the person provides it in Gestiones.
Finalize a file PUT through upload and return its attachment ID for create, message or answer. Checks the exact size, uploader and current company membership; does not send it to a case yet.

Output

list returns the company’s cases with their status, deadlines, versions and filing reference. get returns one case with its conversation, versions, open information request and documents, including drafts and filing receipts. kinds returns what the company can ask for, each with its details_schema and how it is paid. create and submit return the saved or sent case, or the payment_url where the owner pays a kind sold once. request_approval returns the current version and the approval_url where the owner approves it. upload returns an upload_url to PUT the file to and a web_upload_url; upload_complete returns the attachment ID. document_get returns a document as content_base64 with its filename and content_type. No action approves a version, files a return or pays. The result uses MCP content blocks; JSON payloads are encoded in text and may also appear in structuredContent. Check isError before reading a success payload. The server does not declare an outputSchema, so rely on the fields named here and in the live result.

Example

Ask Melso’s professionals for the 2025 income tax return of an autónomo, then follow the case. These are the arguments of each call, in order.
1

See what the company can ask for

2

Open the case and send it

3

Read the case and any question it has

The first call as a request. Use an OAuth access token issued for this MCP resource and replace the example identifiers with values from your own company. Write actions change data.