AI assistant connector (MCP)

iSpis is an MCP server: ChatGPT, Claude, Gemini, Copilot or your own agent connect to https://ispis.com/mcp (or ispis.cz / ispis.sk), sign in with your iSpis account (OAuth) and get the tools below. Setup per client is on the /mcp page. Paid screenings run only with confirm_price=true; sending e-mail or data messages is two-step (message_prepare, then message_send). Every call is audited on the case.

ToolDescriptionParameters
account_infoReturns the signed-in user, the company (tenant), the country and the current credit balance, including whether paid services can be used.
credit_topupCreates a proforma order to top up the credit and returns a card payment link, the variable symbol and a QR code for a bank transfer. It does not pay anything; the credit is added only after the user pays.amount
register_listReturns the registers and profiles available for screening, their price for this account and the input fields. The profile (name) is a parameter of screening_run.
screening_runChecks one person or company in the registers of the chosen profile (from register_list) and returns the result, the price and the credit balance. For a paid profile without confirm_price=true it runs nothing and returns only the price. The result is saved in the account's screening history.profile, Jmeno, Prijmeni, Narozen, RC, IC, Nazev, Adresa, CisloDokladu, DokladCC, confirm_price
screening_historyReturns the account's screening batches for a month (dateseq, profile, name, number of persons, price). screening_detail returns the batch detail.month, limit
screening_detailReturns the inputs, register results, errors and attachment names of one screening batch (dateseq from screening_run or screening_history).dateseq, lineno, limit
screening_fileReturns an attachment of a screening result (e.g. a PDF extract from CEE) as text converted on the server or as the original file.dateseq, lineno, name, format, offset
case_searchFinds cases (max. 10) by RefNo, name, birth number, company ID or other text. Returns the RefNo and a CRM link. case_get returns the detail.query
case_getReturns the case detail by RefNo: state, category, labels, case fields, persons with roles, authorities, claims, payments, recent entries and the list of files (peId for case_file). Without file contents.refno
case_entriesReturns all entries (events) of a case: notes, tasks, files, sent messages, with filtering by kind and paging.refno, kind, offset, limit
case_fileReturns a file of a case (peId from case_get or case_entries) as text converted on the server or as the original file.peId, format, offset
case_auditReturns the system audit of a case: who changed the state, fields, persons or claims and when.refno, limit
person_getReturns the person's data from the CRM (name, birth number, company ID, addresses, contacts, notes) by personId from case_get.personId
isds_listReturns the account's received and sent data messages (newest first), optionally only unresolved ones or only messages of one case.refno, onlyNotDone, limit
isds_getReturns the sender, recipient, subject, case and list of attachments of a data message with a preview of their text.isdsId
isds_attachmentReturns an attachment of a data message (fileNo from isds_get) or the whole signed ZFO message, as text converted on the server or as the original file.isdsId, fileNo, format, offset
inbox_listReturns the user's inbox items (tasks, new files, payments, messages to handle) with the case RefNo and a link.offset
sql_schemaReturns the description of the CRM database tables and columns and the rules for queries (sql_query). Without a parameter the whole schema, with table only one table.table
sql_queryRuns an SQL SELECT over the account's database (PostgreSQL, read-only replica, by default max. 100 rows) and returns the columns, rows and a link to the same report in the CRM (Manage → Table). Requires the pripad:actions permission. sql_schema returns the schema and rules.sql
directory_searchSearches directories: courts = CZ/SK/PL courts (address, data box, filing office; PL only name, seat and superior court), executors = CZ bailiff offices, lawyers = CZ/SK lawyers (without county returns districts, with county the lawyers in the district, with id the detail).kind, query, country, county, id, limit
template_listReturns the account's templates (e-mail, data message, SMS, letter) with channel, format and usage count; systemTemplates are shared system templates.query
template_getReturns the template including the body (HTML with variables <mark>Field</mark>), subject, channel and automatic sending settings.templateId
template_saveWithout templateId creates a new template (channel required), with templateId overwrites the given properties of an existing template. Requires the epr:template permission.templateId, channel, name, subject, body, text, note
case_importCreates a case, or updates an existing one with the same RefNo: category, state, label, case fields and persons with a role. Without refno assigns a RefNo from the account's number series. Persons are matched by birth number / company ID, existing ones are not duplicated.refno, category, state, label, extraId, fields, persons
case_add_claimAdds a claim (invoice/loan) to a case with a variable symbol, amount in the case currency, date of origin and due date. The case must have a debtor or a client.refno, vs, amount, issued, dueDate, note
case_file_uploadSaves a file (base64, e.g. from the user's disk) as a case entry and returns its peId.refno, name, contentBase64, fileType
message_preparePrepares a draft e-mail or data message for a case: from a template (templateId, fills in the case fields) or from text; the recipient is a case person (personId from case_get) or an authority (addrType soud/exekutor). Attaches case files or base64 files. Sends nothing, returns draftId and a preview for message_send.refno, method, personId, addrType, to, isds, templateId, subject, body, text, isdsNase, isdsVase, attachPeIds, attachments
message_sendSends a draft from message_prepare (e-mail or data message) and records it in the case. Sending cannot be undone.draftId
product_infoReturns the product description for AI agents (llms.txt): modules, who uses it, AI connector, tiers from SaaS to your own repository, markets, pricing, contract, GDPR, limits and page links. Without section the whole text (paged by offset), with section only the matching chapter.section, offset
docs_listReturns the user documentation pages (/docs): slug, title, section (start, screening, cases, templates, customization, api, mcp), status (stable, beta, activation = after activation by Sokordia), markets and link. docs_get returns the text.section
docs_getReturns the text (Markdown) of a documentation page by slug from docs_list, in the user's language when translated, otherwise in English; long pages by offset.slug, offset
config_getReturns the account's current setup: categories with their states (colours, substates, deadlines), customization (connected repository, ispis.yaml source and validation, custom actions, sections, events, task kinds, person kinds) and connectors (banks connected by API, names only). Without part all three.part
ispis_yaml_validateChecks a drafted ispis.yaml (categories and states, task kinds, person kinds, custom actions, sections, events, service) against the iSpis rules and returns the errors with paths and a summary. Changes nothing; ispis_yaml_propose commits it.yaml
ispis_yaml_getReturns the account's current ispis.yaml (from the connected repository or the configuration hosted by iSpis) and its last commit; none = built-in configuration. Requires the settings:configure permission.
ispis_yaml_proposeValidates and commits a new ispis.yaml to the account's repository (author iSpis, the user in the commit message) and applies it right away; without a connected repository iSpis hosts the file. Only after the user explicitly agreed with the change. Returns the commit, and cases whose category or state the new configuration does not define (they keep it and are shown as unknown). Requires the settings:configure permission.yaml, message
import_previewReads a spreadsheet (xlsx, xls or csv in base64), returns its sheets, columns with sample values, the first rows and a proposed mapping of columns to case, person and claim fields (RefNo, Category, State, Relation, FullName, BirthNo, Street, City, ZIP, Email, Telefon, VS, Amount, Issued, DueDate, …; field:<Name> for a custom case field, skip to ignore). Imports nothing.name, contentBase64, sheet, mapping
case_import_bulkImports rows of a spreadsheet as cases with persons and claims using a column mapping (from import_preview): each row creates or updates the case with that RefNo (several rows with one RefNo add persons or claims), persons are matched by birth number or company ID. With dryRun=true only validates and shows what would be imported. Processes up to 200 rows per call, continue with offset.name, contentBase64, sheet, mapping, defaults, dryRun, offset, limit
repo_statusReturns the state of the account's customization repository (ispis.yaml, ispis/service.ts): URL, whether it is connected (activated), deploy key, webhook URL and secret for GitHub, source and validation of the configuration and the result of the last pull. Requires the settings:configure permission.
repo_connectConnects the account's own git repository with ispis.yaml. Without repoUrl returns a link to install the iSpis GitHub app (the simplest way for GitHub). With an SSH URL saves it, returns the deploy key (needs write access) and webhook to add, and connects as soon as the key works (call again after adding it). An empty string disconnects. Requires the settings:configure permission.repoUrl
repo_pullPulls the connected repository now, validates ispis.yaml, restarts the hosted ispis/service.ts and returns the result (the same as a push webhook). Requires the settings:configure permission.
account_settings_getReturns the account's basic settings: company, country, currency, language, time zone, case number series (sequenceFormat), labels and postal provider.
account_settings_setChanges the given account settings: sequenceFormat ('' = none, N = 123, N/R = 123/2026; needed for cases without a RefNo), labels (list of single words), language (cs, sk, en, …), timezone (IANA). Requires the settings:configure permission.sequenceFormat, labels, language, timezone
user_listReturns the account's users with role and creation date, pending invitations and the roles available for user_set_role.
user_inviteAdds a user to the account by e-mail: a new user is created and e-mailed sign-in instructions (optionally with a role); an e-mail that already has an iSpis account elsewhere receives a confirmation link to join. Requires the login:grant permission.email, role
user_set_roleSets the role of an existing user of the account (roles from user_list). Requires the login:grant permission.email, role

The same operations are available as REST (/api/*, see the API section) and, for your own module, through custom actions and template variables in your repository (ispis.yaml, see Customization).

Source: src/core/mcp/mcp.docs.md