Insightly MCP server. Read and write Insightly contacts, organisations, leads, opportunities, tasks and notes.
Add to your MCP config, then reload & authorize:
{
"mcpServers": {
"insightly": {
"url": "https://insightly.usefulapi.io/mcp"
}
}
}| Tool | Type | What it does |
|---|---|---|
insightly_get_current_user | read | Get the current user 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. |
insightly_list_users | read | List users List the users in the Insightly instance — needed to resolve OWNER_USER_ID / RESPONSIBLE_USER_ID. Insightly: GET /Users. |
insightly_list_records | read | List or search records 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. |
insightly_get_record | read | Get one record 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}. |
insightly_list_record_activity | read | List a record's notes, tasks or events 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. |
insightly_search_by_tag | read | Find records by tag List Contacts, Organisations, Leads, Opportunities or Projects carrying a tag. Insightly: GET /<Object>/SearchByTag?tagName=. |
insightly_list_pipelines | read | List pipelines List the sales and project pipelines (PIPELINE_ID, name, whether for opportunities or projects). Insightly: GET /Pipelines. |
insightly_list_pipeline_stages | read | List pipeline stages 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. |
insightly_list_lead_statuses | read | List lead statuses List the lead statuses defined in the instance (LEAD_STATUS_ID, name, type). Insightly: GET /LeadStatuses. |
insightly_list_lead_sources | read | List lead sources List the lead sources defined in the instance (LEAD_SOURCE_ID, name). Insightly: GET /LeadSources. |
insightly_create_contact | write | Create a contact Create a contact (first_name is required). Insightly: POST /Contacts. |
insightly_update_contact | write | Update a contact Update a contact. Only the fields you pass are changed (v3.1 partial update). Insightly: PUT /Contacts with CONTACT_ID. |
insightly_create_organisation | write | Create an organisation Create an organisation (company). Insightly: POST /Organisations. |
insightly_update_organisation | write | Update an organisation Update an organisation. Only the fields you pass are changed. Insightly: PUT /Organisations with ORGANISATION_ID. |
insightly_create_lead | write | Create a lead 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. |
insightly_update_lead | write | Update a lead Update a lead. Only the fields you pass are changed. Insightly: PUT /Leads with LEAD_ID. |
insightly_create_opportunity | write | Create an opportunity Create a sales opportunity (opportunity_name is required). Insightly: POST /Opportunities. |
insightly_update_opportunity | write | Update an opportunity Update an opportunity's value, probability, dates, owner or details. Only the fields you pass are changed. Insightly: PUT /Opportunities with OPPORTUNITY_ID. |
insightly_create_task | write | Create a task 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. |
insightly_update_task | write | Update a task 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. |
insightly_add_note | write | Add a note to a record Add a note (title + body) to a Contact, Organisation, Lead, Opportunity or Project. Insightly: POST /<Object>/{id}/Notes. |
insightly_usage_status | Usage status (free-tier meter) Report the caller's current free-tier usage this month: calls used, monthly limit, remaining, and whether the cap is reached. Read-only; does not count against the meter. | |
insightly_upgrade | Upgrade to Pro (unlimited) Subscribe to the Pro plan for UNLIMITED Insightly tool calls (the free tier caps monthly usage). Choose monthly ($9/month) or yearly ($90/year — 2 months free) billing. Returns a Stripe Checkout link to open in your browser; after payment your account upgrades automatically. Read-only; does not count against the meter. |
| Plan | Price | Limit |
|---|---|---|
| Free | $0 | 100 tool calls / month |
| Proper user | $9/mo · $90/yr | Unlimited |
This is a Model Context Protocol endpoint — meant to be connected from an AI client, not opened in a browser. An invalid_token response at the URL is the auth gate working as designed; clients authenticate automatically.