Skip to content

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.

Deletes · 11

21 tools: 11 can delete or cancel things and 10 only read.

Scanned Oct 21, 2026

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/mcp

Tools

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/mcp

Run in a terminal.

Claude Code permissions

Allow the reads, ask before a change, deny the deletes. Paste into .claude/settings.json.

.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.