Tools
The Solk MCP server's read and write tools, their parameters, and example prompts.
Tools run on top of the REST API: each tool call invokes the corresponding API endpoint under your account, and the same rules apply (permissions, visibility, stage gates, duplicate protection). The client sees only the tools you can use:
- Without the
crm.readscope, read tools don't appear in the list; withoutcrm.write, write tools don't. - Tools for modules that are disabled on your license or for your user aren't listed (for example, if the Fair leads module is disabled, its tools are hidden).
Tool names and descriptions are in English so that models understand them better; you can still talk to the assistant in Turkish.
Read tools
Read tools are reported to the client with readOnlyHint: true — Claude offers an "always allow" option for them.
| Tool | Description | Parameters | Example prompt |
|---|---|---|---|
search |
Find companies, contacts, opportunities and fair leads by name, city, phone or e-mail (min 2 characters). Also resolves a 15-character record ID. | query* |
Find Kumsal Plastik |
list_companies |
List companies (customers) with filters. Returns rows with id, status (AC/Prospect), owner, city, visit state, plus counts. | page, query, scope (mine · all), sort (name · visit · priority), status (AC · Prospect), visit (overdue · soon · ok · none) |
List my active customers with overdue visits |
get_company |
Full company card: contacts, opportunities, recent visits/demos, open actions, offers, notes, email threads and key fields. | company_id* |
Summarize the Alize Paketleme company card |
list_contacts |
List contacts (people) across companies. | query, scope (mine · all) |
Show contacts whose title is purchasing manager |
list_opportunities |
List opportunities (sales projects). stage: open (default), closed, account (customer follow-up containers) or a stage key Qualify, Viable, Present Solution, Negotiation, Expect to Close, Win, Lost, Cancel. | page, query, scope (mine · all), sort (update · health · value · sla), stage |
Sort opportunities in Negotiation by value |
get_opportunity |
Full opportunity: stage, value, probability, health, checklist steps, BANT, gate problems, visits, demos, offers, stage history, notes. | opportunity_id* |
What is the stretch film opportunity waiting on to move to the next stage? |
list_actions |
Open to-dos: tasks, next actions from visits and demos, and dated project steps. Each row has kind + id (use with complete_action). | company_id, scope (mine · all), state (today · overdue · soon · open · week) |
Which of my actions are overdue this week? |
get_action |
One action / task with its context (company, opportunity, history). | id, kind (visit · demo · task · step) |
Open the details of the price list task |
list_calendar |
Calendar: meetings and events in a date range, plus derived entries (due actions, visit due dates). | from, to |
What's on my calendar next week? |
list_email_threads |
E-mail conversations synced from the users' mailboxes. Either for a record (record_type + record_id) or the inbox (filter, query). | filter (all · waiting · replied · mine), query, record_id, record_type (customer · opp · visit · demo · task · offer · ticket · contract) |
Show customer emails waiting for a reply |
get_email_thread |
Messages of one e-mail conversation (bodies may be hidden if the user may not see them) and its linked records. | thread_id* |
Summarize the latest thread with Kuzey Plastik |
get_dashboard |
KPIs: pipeline by stage (count and value in base currency), weekly visit targets, SLA overruns, visits due, next steps, upcoming items. | scope |
Give me a pipeline summary |
get_today |
My day: today's meetings and to-dos, overdue items, recently viewed records and this week's activity. | — | What do I need to do today? |
list_team |
Active users (id, name, role, department) — use ids for assigned_to / owner_id. | — | Who is on the team? |
* required parameter.
Write tools
Write tools create or modify records; none of them delete records (destructiveHint: false). Claude asks for approval before every write call.
| Tool | Description | Parameters | Example prompt |
|---|---|---|---|
create_company |
Create a company (status Prospect unless given). Fails if the name exists; similar names need confirm_new=true. Optional first contact. | address, city, confirm_new, contact_email, contact_name, contact_phone, contact_title, name*, note, owner_id, phone, sector, status (AC · Prospect), website |
Create a new prospect called Anadolu Gıda Ambalaj in Konya |
update_company |
Update company fields (only the given ones change). | address, city, company_id*, name, note, owner_id, phone, sector, status (AC · Prospect), visit_period_days, website |
Mark Kuzey Plastik as an active customer and set a 30-day visit cycle |
create_contact |
Add a person to a company. | company_id, department, email, is_main, name, note, phone, title |
Add Emre Yıldız to Kuzey Plastik as production lead |
create_opportunity |
Open a new sales project for a company (starts in the first stage). | company_id*, competitor, name, note, type, value |
Open a 'Stretch film supply' opportunity for Kuzey Plastik |
change_opportunity_stage |
Move an opportunity to another stage. Keys: Qualify, Viable, Present Solution, Negotiation, Expect to Close, Win, Lost, Cancel. Pipeline gates apply; refused changes return the reasons. | note, opportunity_id, reason, stage (Qualify · Viable · Present Solution · Negotiation · Expect to Close · Win · Lost · Cancel) |
Move the stretch film opportunity to Viable |
create_task |
Create a task (to-do). Assigned to me unless assigned_to is given. Linking a company is optional; no project is opened automatically. | assigned_to, company_id, company_name, detail, due_date, due_time, opportunity_id, priority (Düşük · Normal · Yüksek · Acil), title* |
Create a task to call Kuzey Plastik tomorrow at 10:30 |
complete_action |
Mark an action done (task, visit/demo next action, project step). done_on = completion day YYYY-MM-DD (default today). | done_on, id, kind (visit · demo · task · step), result |
Mark the price list task as done |
log_activity |
Record a call or face-to-face visit with a company (Quick Entry): note, result and the next action + date. Closes matching open actions and advances the project like the web form. Unknown company names create a new lead unless similar names exist (then confirm_new=true). | action_date, company, confirm_new, contact, next_action, note, opportunity_id, result, topic, visit_date, visit_type (F2F · Call) |
Log my call with Kuzey Plastik just now and add a follow-up to send a quote on Thursday |
add_note |
Add a note to a company, opportunity, support ticket or contract. | body, record_id, record_type* (customer · opp · ticket · contract) |
Add a note 'asked for a price revision' to Alize Paketleme |
* required parameter.
Response format
Tools return results both as text (content[0].text, JSON) and as structured content (structuredContent). On business rule errors (for example, a stage gate or a similar company name), the result has isError: true and text explaining the reason; the assistant passes this on to the user or corrects the request and retries.
{
"jsonrpc": "2.0",
"id": 3,
"result": {
"content": [{ "type": "text", "text": "{\"counts\": {\"overdue\": 8, \"soon\": 0, \"today\": 0}, \"rows\": [ … ]}" }],
"structuredContent": { "counts": { "overdue": 8, "soon": 0, "today": 0 }, "rows": [ "…" ] },
"isError": false
}
}