Insightly MCP by usefulapi
by usefulapi.io · remote · no sign-in to list tools · v1.16.3 · published by io.usefulapi
Read and write Insightly contacts, organisations, leads, opportunities, tasks and notes.
21 tools: 11 can delete or cancel things and 10 only read.
Scanned Oct 21, 2026
- Deletes or cancels11Claude Code: deny: see these tools
- Can't be undone0Claude Code: ask
- Changes things0Claude Code: ask
- Only reads10Claude Code: allow: see these tools
No check matched anything in the tool definitions. No finding is not a safety guarantee. How the checks work.
claude mcp add --transport http insightly https://insightly.usefulapi.io/mcpTools
Open a tool for its reasons and full description. Descriptions are the publisher's own words, shown as they are.
21 tools
Deletes or cancels 11Claude Code: deny
insightly_add_noteAdd a note (title + body) to a Contact, Organisation, Lead, Opportunity or Project.No findings
Why it is in this group
- The name "insightly_add_note" says "add": a word for a change.
- The server marks it destructive (destructiveHint: true).
Description, as the server wrote it Add a note (title + body) to a Contact, Organisation, Lead, Opportunity or Project. Insightly: POST /<Object>/{id}/Notes.
Annotations the server declares
- title: Add a note to a record
- destructiveHint: true
insightly_create_contactCreate a contact (first_name is required).No findings
Why it is in this group
- The name "insightly_create_contact" says "create": a word for a change.
- The server marks it destructive (destructiveHint: true).
Description, as the server wrote it Create a contact (first_name is required). Insightly: POST /Contacts.
Annotations the server declares
- title: Create a contact
- destructiveHint: true
insightly_create_leadCreate a lead (last_name is required).No findings
Why it is in this group
- The name "insightly_create_lead" says "create": a word for a change.
- The server marks it destructive (destructiveHint: true).
Description, as the server wrote it Create a lead (last_name is required). Insightly's schema also marks lead_status_id and lead_source_id as required — get valid ids from insightly_list_lead_statuses / insightly_list_lead_sources. Insightly: POST /Leads.
Annotations the server declares
- title: Create a lead
- destructiveHint: true
insightly_create_opportunityCreate a sales opportunity (opportunity_name is required).No findings
Why it is in this group
- The name "insightly_create_opportunity" says "create": a word for a change.
- The server marks it destructive (destructiveHint: true).
Description, as the server wrote it Create a sales opportunity (opportunity_name is required). Insightly: POST /Opportunities.
Annotations the server declares
- title: Create an opportunity
- destructiveHint: true
insightly_create_organisationCreate an organisation (company).No findings
Why it is in this group
- The name "insightly_create_organisation" says "create": a word for a change.
- The server marks it destructive (destructiveHint: true).
Description, as the server wrote it Create an organisation (company). Insightly: POST /Organisations.
Annotations the server declares
- title: Create an organisation
- destructiveHint: true
insightly_create_taskCreate a task (title is required).No findings
Why it is in this group
- The name "insightly_create_task" says "create": a word for a change.
- The server marks it destructive (destructiveHint: true).
Description, as the server wrote it Create a task (title is required). Insightly requires OWNER_USER_ID and COMPLETED on a task: if owner_user_id is omitted it is filled with the API key's own user (via GET /Users/Me), and completed defaults to false. Insightly: POST /Tasks.
Annotations the server declares
- title: Create a task
- destructiveHint: true
insightly_update_contactUpdate a contact.No findings
Why it is in this group
- The name "insightly_update_contact" says "update": a word for a change.
- The server marks it destructive (destructiveHint: true).
Description, as the server wrote it Update a contact. Only the fields you pass are changed (v3.1 partial update). Insightly: PUT /Contacts with CONTACT_ID.
Annotations the server declares
- title: Update a contact
- destructiveHint: true
insightly_update_leadUpdate a lead.No findings
Why it is in this group
- The name "insightly_update_lead" says "update": a word for a change.
- The server marks it destructive (destructiveHint: true).
Description, as the server wrote it Update a lead. Only the fields you pass are changed. Insightly: PUT /Leads with LEAD_ID.
Annotations the server declares
- title: Update a lead
- destructiveHint: true
insightly_update_opportunityUpdate an opportunity's value, probability, dates, owner or details.No findings
Why it is in this group
- The name "insightly_update_opportunity" says "update": a word for a change.
- The server marks it destructive (destructiveHint: true).
Description, as the server wrote it Update an opportunity's value, probability, dates, owner or details. Only the fields you pass are changed. Insightly: PUT /Opportunities with OPPORTUNITY_ID.
Annotations the server declares
- title: Update an opportunity
- destructiveHint: true
insightly_update_organisationUpdate an organisation.No findings
Why it is in this group
- The name "insightly_update_organisation" says "update": a word for a change.
- The server marks it destructive (destructiveHint: true).
Description, as the server wrote it Update an organisation. Only the fields you pass are changed. Insightly: PUT /Organisations with ORGANISATION_ID.
Annotations the server declares
- title: Update an organisation
- destructiveHint: true
insightly_update_taskUpdate a task — mark it completed, change due date, status, assignee or details.No findings
Why it is in this group
- The name "insightly_update_task" says "update": a word for a change.
- The server marks it destructive (destructiveHint: true).
Description, as the server wrote it Update a task — mark it completed, change due date, status, assignee or details. Only the fields you pass are changed. Insightly: PUT /Tasks with TASK_ID.
Annotations the server declares
- title: Update a task
- destructiveHint: true
Only reads 10Claude Code: allow
insightly_get_current_userFetch the user the API key belongs to (USER_ID, name, email, admin flag).No findings
Why it is in this group
- The name "insightly_get_current_user" says "get": a word for reading.
Description, as the server wrote it Fetch the user the API key belongs to (USER_ID, name, email, admin flag). A cheap way to confirm the key and pod are right, and to get your own id for owner fields. Insightly: GET /Users/Me.
Annotations the server declares
- title: Get the current user
- readOnlyHint: true
insightly_get_recordFetch a single Contact, Organisation, Lead, Opportunity, Project, Task, Event or Note by id, with its custom fields, tags and links.No findings
Why it is in this group
- The name "insightly_get_record" says "get": a word for reading.
Description, as the server wrote it Fetch a single Contact, Organisation, Lead, Opportunity, Project, Task, Event or Note by id, with its custom fields, tags and links. Insightly: GET /<Object>/{id}.
Annotations the server declares
- title: Get one record
- readOnlyHint: true
insightly_list_lead_sourcesList the lead sources defined in the instance (LEAD_SOURCE_ID, name).No findings
Why it is in this group
- The name "insightly_list_lead_sources" says "list": a word for reading.
Description, as the server wrote it List the lead sources defined in the instance (LEAD_SOURCE_ID, name). Insightly: GET /LeadSources.
Annotations the server declares
- title: List lead sources
- readOnlyHint: true
insightly_list_lead_statusesList the lead statuses defined in the instance (LEAD_STATUS_ID, name, type).No findings
Why it is in this group
- The name "insightly_list_lead_statuses" says "list": a word for reading.
Description, as the server wrote it List the lead statuses defined in the instance (LEAD_STATUS_ID, name, type). Insightly: GET /LeadStatuses.
Annotations the server declares
- title: List lead statuses
- readOnlyHint: true
insightly_list_pipeline_stagesList every pipeline stage (STAGE_ID, PIPELINE_ID, name, order) — map an opportunity's or project's STAGE_ID to a stage name.No findings
Why it is in this group
- The name "insightly_list_pipeline_stages" says "list": a word for reading.
Description, as the server wrote it List every pipeline stage (STAGE_ID, PIPELINE_ID, name, order) — map an opportunity's or project's STAGE_ID to a stage name. Insightly: GET /PipelineStages.
Annotations the server declares
- title: List pipeline stages
- readOnlyHint: true
insightly_list_pipelinesList the sales and project pipelines (PIPELINE_ID, name, whether for opportunities or projects).No findings
Why it is in this group
- The name "insightly_list_pipelines" says "list": a word for reading.
Description, as the server wrote it List the sales and project pipelines (PIPELINE_ID, name, whether for opportunities or projects). Insightly: GET /Pipelines.
Annotations the server declares
- title: List pipelines
- readOnlyHint: true
insightly_list_record_activityList the Notes, Tasks or Events attached to one Contact, Organisation, Lead, Opportunity or Project — the activity history of that record.No findings
Why it is in this group
- The name "insightly_list_record_activity" says "list": a word for reading.
Description, as the server wrote it List the Notes, Tasks or Events attached to one Contact, Organisation, Lead, Opportunity or Project — the activity history of that record. Insightly: GET /<Object>/{id}/Notes | Tasks | Events.
Annotations the server declares
- title: List a record's notes, tasks or events
- readOnlyHint: true
insightly_list_recordsList records of one type — Contacts, Organisations, Leads, Opportunities, Projects, Tasks, Events or Notes — optionally filtered by one field value and/or last-updated time.No findings
Why it is in this group
- The name "insightly_list_records" says "list": a word for reading.
Description, as the server wrote it List records of one type — Contacts, Organisations, Leads, Opportunities, Projects, Tasks, Events or Notes — optionally filtered by one field value and/or last-updated time. With field_name + field_value (both required together) or updated_after_utc this uses GET /<Object>/Search; otherwise GET /<Object>. Field names are Insightly's UPPER_SNAKE names, e.g. EMAIL_ADDRESS, LAST_NAME, ORGANISATION_NAME, OPPORTUNITY_STATE, LEAD_RATING, or a custom field such as Industry__c.
Annotations the server declares
- title: List or search records
- readOnlyHint: true
insightly_list_usersList the users in the Insightly instance — needed to resolve OWNER_USER_ID / RESPONSIBLE_USER_ID.No findings
Why it is in this group
- The name "insightly_list_users" says "list": a word for reading.
Description, as the server wrote it List the users in the Insightly instance — needed to resolve OWNER_USER_ID / RESPONSIBLE_USER_ID. Insightly: GET /Users.
Annotations the server declares
- title: List users
- readOnlyHint: true
insightly_search_by_tagList Contacts, Organisations, Leads, Opportunities or Projects carrying a tag.No findings
Why it is in this group
- The name "insightly_search_by_tag" says "search": a word for reading.
Description, as the server wrote it List Contacts, Organisations, Leads, Opportunities or Projects carrying a tag. Insightly: GET /<Object>/SearchByTag?tagName=.
Annotations the server declares
- title: Find records by tag
- readOnlyHint: true
This is not a safety rating, and no finding is not a safety guarantee. The groups and findings come from fixed checks of the tool definitions the server returned on the date shown, not from its code or what it does when called. How the checks work.
Install
Pinned to version 1.16.3. Values in angle brackets are yours to fill in.
claude mcp add --transport http insightly https://insightly.usefulapi.io/mcpRun in a terminal.
Claude Code permissions
Allow the reads, ask before a change, deny the deletes. Paste into .claude/settings.json.
{
"permissions": {
"allow": [
"mcp__insightly__insightly_get_current_user",
"mcp__insightly__insightly_list_users",
"mcp__insightly__insightly_list_records",
"mcp__insightly__insightly_get_record",
"mcp__insightly__insightly_list_record_activity",
"mcp__insightly__insightly_search_by_tag",
"mcp__insightly__insightly_list_pipelines",
"mcp__insightly__insightly_list_pipeline_stages",
"mcp__insightly__insightly_list_lead_statuses",
"mcp__insightly__insightly_list_lead_sources"
],
"ask": [],
"deny": [
"mcp__insightly__insightly_create_contact",
"mcp__insightly__insightly_update_contact",
"mcp__insightly__insightly_create_organisation",
"mcp__insightly__insightly_update_organisation",
"mcp__insightly__insightly_create_lead",
"mcp__insightly__insightly_update_lead",
"mcp__insightly__insightly_create_opportunity",
"mcp__insightly__insightly_update_opportunity",
"mcp__insightly__insightly_create_task",
"mcp__insightly__insightly_update_task",
"mcp__insightly__insightly_add_note"
]
}
}Tools that only read are allowed, tools that change things ask first, tools that delete or cancel are denied. It assumes the server is installed as insightly. Review it before you use it.