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.read scope, read tools don't appear in the list; without crm.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
  }
}