Question your nPlan Insights forecasts, risks and schedules from Claude and other AI assistants that support remote MCP connectors.
Tools that create or change data are marked as such, so your AI assistant can ask before using them. Outcome mappings are the only thing the connector can delete. Changes are made as you, with your Insights permissions, exactly as if you made them in the web app.
Connector URL:
https://mcp.insights.nplan.io/mcp
List projectsinsights_list_projects | Answers 'which projects can I see' or 'what is the uid of the Thameslink project'. List the Insights projects you can access: uid, name, client and planned completion date. Archived projects are left out unless include_archived is true. |
Get projectinsights_get_project | Answers 'what views and key milestones does this project have'. Project details, key milestones and its views (one per analysed target milestone). Use a view's name with the other tools. |
Get viewinsights_get_view | Answers 'is this view analysed yet', 'what is its target milestone' or 'how many insights are still to review'. A view's target milestone, latest revision, analysis status or error, and insight review counts. |
List revisionsinsights_list_revisions | Answers 'which uploads does this view have' or 'what is the latest data date'. Schedule revisions (uploads) analysed in a view, newest data date first: name, data date, type and processing stage. |
Get forecastinsights_get_forecast | Answers 'when will we finish', 'how late are we against plan' or 'how likely are we to hit the date'. Forecast for the view's target milestone in one revision: planned finish, P10/P20/P50/P80/P90 forecast finish, slip against plan in days, likelihood of meeting the planned date and productivity uplift needed. |
Get forecast trendinsights_get_forecast_trend | Answers 'is the forecast getting better or worse over time'. Use this instead of calling insights_get_forecast once per revision. How the target milestone's planned and P50/P80 forecast finish moved across the view's revisions, oldest first. |
Search insightsinsights_search_insights | Answers 'what are the biggest risks', 'which opportunities are still open' or 'what is due this month'; with group_by, 'which WBS branch, calendar or theme has the most risk'. Risks and opportunities nPlan found in a view, paged: name, title, category, status, impact, owner and due date. Filter by status, type and due date range. Use insights_get_insight for detail. For exports, all true returns every row (up to 5,000). |
Get insightinsights_get_insight | Answers 'why is this a risk', 'which activities does it affect' or 'what are we doing about it'. One insight: description, delay causes, affected activities (first 25), actions and matched risk register entries. |
Get risk registerinsights_get_risk_register | Answers 'what is in the client's risk register for this view'. Entries from the risk register selected for a view, paged. With group_by, totals per WBS branch, calendar or theme of their activities. For exports, all true returns every row (up to 5,000). |
List themesinsights_list_themes | Answers 'which groups of work are driving delay'. Use this instead of grouping insights_search_tasks results yourself. Tracked themes (groups of related activities driving delay) in a view: name, description, delay sensitivity and activity count. |
List actionsinsights_list_actions | Answers 'what mitigations are planned', 'who owns them' or 'which are overdue'. Mitigation actions recorded against a view's insights and themes, paged: title, status, assignee, due date and parent insight or theme. For exports, all true returns every row (up to 5,000). |
Search activitiesinsights_search_tasks | Answers 'find activity X', 'what are the dates and float of the piling activities' or 'list the activities in this revision'; with group_by, 'which WBS branch, calendar, theme or insight carries the most delay'. Search a revision's activities and milestones by code or name, paged: planned and actual dates, float and P50/P80 forecast finish. Pass page_token from the previous result to get the next page. For exports, all true returns every row (up to 5,000). |
Get activityinsights_get_task | Answers 'when will this activity finish', 'how likely is it to finish on time' or 'what drives it'. One activity or milestone by code: planned, actual and remaining dates, float, forecast start and finish percentiles, likelihood of meeting its planned finish, and predecessors and successors (first 25). |
Get driving pathinsights_get_driving_path | Answers 'what drives the end date' or 'which activities are most critical'. Use this instead of walking predecessors with insights_get_task. The dominant driving paths to the view's target milestone (or another activity), in order, with dates, float and criticality; plus the most critical activities overall. Not the whole network. |
Get schedule healthinsights_get_schedule_health | Answers 'is this schedule fit to forecast' or 'what is wrong with its logic'. Schedule integrity for a revision: overall RAG rating and reasons, and every integrity check with its count or value and rating, worst first. |
Get milestone forecastsinsights_get_milestone_forecasts | Answers 'when will each milestone finish' or 'which milestones are slipping'. Use this instead of looking milestones up one by one with insights_get_task. Forecast finish of a revision's milestones: planned finish, P10-P90 forecast finishes and slip, likelihood to meet the planned date and whether it is complete. scope key (default) lists the project's key milestones and the view's target; if the project has none, all milestones are listed. |
Get view summaryinsights_get_view_summary | Answers 'give me the headline for this project' or 'where are we losing time'. A stored written summary of a view (markdown, truncated): project outlook, current areas of delay or schedule quality trend. |
Get job statusinsights_get_job_status | Answers 'is the analysis or forecast finished yet' and returns its result once it is. Wait for background work and return its result. With revision_name, waits for that revision to be forecast. Otherwise waits for a view's analysis job (job, default the newest) and lists recent jobs. With outcome_inference, waits for a revision's outcome mapping inference and counts the drafts it left. Once finished, result has the milestone's new P50 and P80 finish and the change in days from the parent revision. |
Get outcomesinsights_get_outcomes | Answers 'how much money is at risk', 'what will delay cost us' or 'what revenue does this forecast earn'. Use this instead of summing outcome mappings yourself. Outcomes (earned value): the value a revision's forecast earns or costs, from the values mapped to its activities and milestones (revenue on completion, liquidated damages per day of delay, running costs, ...). Per unit and value type: the final cumulative value at P10, P50 and P90, and the uncertainty (P10 to P90 spread as a share of P50) with the rating the Outcomes page shows. include_timeline adds the cumulative P10/P50/P90 curve, one point per month. compare_revision_name adds the P50 change against another revision. |
List outcome mappingsinsights_list_outcome_mappings | Answers 'which values are mapped to which activities' or 'which AI suggestions still need review'. The values mapped to a revision's activities and milestones for Outcomes: task code and name, value type, quantity, unit, label and the document it came from. status draft lists AI-suggested mappings still awaiting review; confirmed (default) lists the ones used in the outcomes; all lists both. For exports, all true returns every row (up to 5,000). |
List outcome unitsinsights_list_outcome_units | Answers 'which units can I map values in'. Units outcome values can be mapped in (id, code, label, dimension), e.g. USD in currency or MWh in energy. Units are shared across all projects. |
List documentsinsights_list_documents | Answers 'which documents are uploaded to this project'. Documents uploaded to a project (contracts, specifications, reports): name, display name, type and processing status. Pass names to insights_infer_outcome_mappings. |
Get Barry conversationinsights_get_barry_conversation | Use to read a Barry conversation or fetch an answer that was still being written. Messages in a Barry conversation, oldest first, paged. Waits for an answer Barry is still writing by default, so use it to pick up an insights_ask_barry answer that was still running. |
List Barry conversationsinsights_list_barry_conversations | Answers 'what have I asked Barry about this project before'. Your Barry conversations on a project, newest first: conversation_id, title, start time and link. |
List Barry skillsinsights_list_skills | Answers 'which saved Barry workflows can I run on this project'. Barry skills (saved multi-step prompts) for a project: the project's favourites, suggestions for it, then the shared library. Each has its steps and the inputs insights_run_skill needs (label and type: MILESTONE, ACTIVITY, FILE, TEXT...). |
List saved widgetsinsights_list_widgets | Answers 'which widgets have I or my team saved'. Widgets in the user's My Widgets and widgets shared with them, newest first, optionally for one project: description, owner, the prompt that made it and its conversation. They only render in Insights. |
Compare two revisionsinsights_compare_revisions | Answers 'what changed between these two revisions and why' or 'which activities lost the most float since last month'. Compares revision A with revision B, milestone by milestone and activity by activity (paired by activity code, as task IDs change between uploads). For each: planned finish, P10-P90 forecast finish, planned float, float to the target milestone (from the links' free float), the forecaster's deterministic float, and float at P10-P90 in A and B, with the change B minus A in days. Float at P80 is the pessimistic end: 80% of simulations have at least that much. Float is measured to milestone_code (default the view's target), and is worked out by a backward pass the first time a revision and milestone are asked for. scope: all (default; activities in both revisions, biggest P80 change first, plus counts of added and removed ones), critical (the critical path to the milestone and up to 5 near-critical paths) or driving (up to 5 driving paths). narrative is Schedule Comparison's executive summary of what changed between the two schedules; the tool waits for it by default, and calling again returns it once ready. Starts a comparison in Schedule Comparison, which the user can also open there. |
Update insightinsights_update_insight | Use to accept, dismiss or assign a risk or opportunity. Review a risk or opportunity: change its status, impact, owner, due date or notes. Dismiss it by setting status CLOSED_DISMISSED with a dismiss_reason. Only the fields you pass change. |
Add actioninsights_add_action | Use to record a mitigation against an insight or theme. Add a mitigation action to an insight or to a tracked theme. Pass exactly one of insight_name or theme_name. |
Update actioninsights_update_action | Use to reassign, reschedule or close an action. Change an action's title, detail, assignee, due date or status. Only the fields you pass change. |
Track themeinsights_track_theme | Use to follow a theme across future revisions. Start tracking a theme so it appears in the view's tracked themes. |
Untrack themeinsights_untrack_theme | Use to stop following a theme. Stop tracking a theme. Its actions are kept. |
Create viewinsights_create_view | Use to forecast a different target milestone. Create a view for a target milestone of a project, or update the view that already targets it. Optionally attach a ready revision; attaching starts no new run. Run insights_run_analysis afterwards only if the revision's risks still need finding, which can take hours. |
Run analysisinsights_run_analysis | Use to forecast and find risks in a revision that has not been analysed. Run nPlan's forecast and risk analysis of a view's revision (default the latest). Takes from under an hour to many hours: time grows with the threat and opportunity counts and the schedule's size, and hundreds on a large schedule can take over 10 hours. Until it finishes, the website blocks new schedule uploads to the project. Waits for it by default and returns the target milestone's P50 and P80 and the change from the parent revision. Threat and opportunity counts default to the view's last successful analysis, else 25 each; reusing more than 25 is refused until the counts are passed explicitly, so ask the user which size to run first. |
Create mitigation scenarioinsights_create_mitigation_scenario | Answers 'what if we mitigate these risks: how much time do we win back'. Create a what-if scenario from a view's latest revision in which the given insights are mitigated. Effectiveness is the fraction of each insight's delay removed (default 0.6). The scenario is a new revision; waits for its forecast by default and returns the target milestone's P50 and P80 and the change from the revision it came from. |
Create projectinsights_create_project | Use to start a new project before uploading its schedule. Create an empty Insights project. client_id is needed only if you belong to more than one client; an error lists them. |
Create upload URLinsights_create_upload_url | Use to upload a file too large to send inline. Get a one-off signed URL to upload a large or binary file (up to 1 GB for a schedule, up to 30 MB for a document) to. PUT the raw file bytes to upload_url with each of upload_headers sent unchanged. Copy each header value from upload_headers, because a schedule URL and a document URL have different values (e.g. curl -T <file> -H 'x-goog-content-length-range: <value from upload_headers>' '<upload_url>'). Then pass upload_id to insights_upload_schedule or insights_upload_document. Cloud Storage rejects the PUT if a header is missing or changed, or if the file is over the signed limit (upload_max_bytes). For a document, ingest_max_bytes is the same as upload_max_bytes, so insights_upload_document can ingest every document that uploads. Files under 10 MB can be passed to those tools directly instead. |
Upload scheduleinsights_upload_schedule | Use to add a new schedule file to a project. Upload a schedule file (.xer, .mpp, .xml) to a project. Insights parses it and creates an unprocessed (LIGHT) revision; waits for that by default. Next, create a forecastable revision from it with insights_create_revision. |
Import from Schedule Studioinsights_import_from_schedule_studio | Use to forecast a schedule built in Schedule Studio. Import a Schedule Studio schedule into an Insights project as a new unprocessed (LIGHT) revision. The schedule is copied as is, with no XER or other file conversion. Waits for the revision by default. Next, create a forecastable revision from it with insights_create_revision. |
Upload documentinsights_upload_document | Use to give Barry and risk matching a contract, report or risk register. Upload a document (at most 30 MB) to a project, for Barry and risk matching. It is processed in the background. |
Create revisioninsights_create_revision | Answers 'what if this activity took longer or the data date moved' by forecasting a variant of a revision. Create a named revision from an existing one (e.g. a just-uploaded schedule), with scenario overrides. Waits for its forecast by default and returns the milestone's P50 and P80 and the change from the parent revision. To analyse its risks, attach it to a view with insights_create_view, then run insights_run_analysis. |
Ask Barryinsights_ask_barry | Answers 'what do the contract documents say about access dates' and other open questions the other tools don't cover. Ask Barry, nPlan's schedule assistant, a question about a project, or continue a conversation with conversation_id. Barry can query the schedule and forecasts, search the project's documents and build widgets. Waits for the answer by default and returns it as markdown, with the widgets in it described (they render in Insights, at link). When the question is about a particular revision or scenario, pass revision_name when starting the conversation so Barry answers from it rather than asking which revision to use. |
Run Barry skillinsights_run_skill | Use to run a saved multi-step Barry workflow, such as a monthly report. Run a Barry skill in a new conversation on project_uid, or in conversation_id, and wait for it. Returns Barry's answer to each step, the last in full. Ask the user for any inputs you can't find with the other tools (e.g. a milestone code from insights_get_milestone_forecasts). |
Create Barry widgetinsights_create_widget | Use to make a chart or table for a dashboard or report. Ask Barry to build a widget (a chart, table or dashboard tile from the project's data) and save it to the user's My Widgets in Insights. Returns widget_id, Barry's answer and a link; the widget itself only renders in Insights. |
Save Barry widgetinsights_save_widget | Use to keep a widget Barry already built in a conversation. Save a widget from a Barry answer to the user's My Widgets. Defaults to the first widget in the latest answer that has one. |
Set outcome mappingsinsights_set_outcome_mappings | Use to say what an activity or milestone is worth, e.g. damages per day of delay or a payment on completion. Add or change the values mapped to a revision's activities and milestones for Outcomes. Each entry with an id (from insights_list_outcome_mappings) changes only the fields passed; each entry without one adds a mapping and needs task_code, value_type, quantity and unit_code (from insights_list_outcome_units). element_type defaults from the task, label to the task name. Value types: FIXED_ON_COMPLETION (once, when the task finishes), PER_DAY_OF_DELAY (per day the task finishes after its planned date, e.g. liquidated damages), POST_COMPLETION_RATE (per day from completion, e.g. revenue once open), RUNNING_COST (per day while the task runs), RUNNING_DELAY_COST (per day the task runs past its planned finish). Entries are applied one by one and failures are reported per entry. Then the outcomes are recomputed once and the new P10/P50/P90 values returned (recompute false skips that). |
Delete outcome mappings (destructive)insights_delete_outcome_mappings | Use to remove wrong or unwanted outcome mappings. Delete outcome mappings (confirmed or draft) from a revision by id, from insights_list_outcome_mappings, then recompute the outcomes once (recompute false skips that). This cannot be undone. |
Copy outcome mappingsinsights_copy_outcome_mappings | Answers 'carry my outcome mappings over to the new revision'. Copies the confirmed outcome mappings of an earlier revision of the same project (source_revision_name, from insights_list_revisions) to this one, matched by activity code, then recomputes the outcomes once (recompute false skips that). Activities missing from this revision and mappings it already has are skipped, so it is safe to run again. New uploads normally get their mappings copied automatically; use this when they did not, instead of re-creating them with insights_set_outcome_mappings. |
Create outcome unitinsights_create_outcome_unit | Use only when no existing unit fits a value. Add a unit outcome values can be mapped in, e.g. code tCO2e, label Tonnes of CO2 equivalent, dimension carbon. Units are shared by every project and customer, so check insights_list_outcome_units first; an existing code is refused. |
Compute outcomesinsights_compute_outcomes | Use after changing mappings to refresh the outcome values. Recompute a revision's outcomes from its confirmed mappings and the latest forecast, and return the new P10/P50/P90 values. reporting_horizon caps per-day accruals (default: the latest P100 finish plus two years). |
Run outcome scenarioinsights_run_outcome_scenario | Answers 'what if the damages rate or a payment changed' without saving anything. What-if outcomes, not saved: the revision's confirmed mappings with changes applied, computed against its forecast. A change with a mapping_id overrides that mapping's task_code, value_type, quantity or unit_code, or drops it with remove true; a change without one adds a mapping (task_code, value_type, quantity and unit_code). Returns P10/P50/P90 and the P50 change against the saved outcomes. |
Infer outcome mappingsinsights_infer_outcome_mappings | Use to have AI read contracts for values to map, instead of mapping them by hand. Start AI inference of outcome mappings from project documents (from insights_list_documents): it reads them for values such as delay damages, milestone payments and running costs and maps them to the revision's activities and milestones as drafts. Nothing is confirmed until you call insights_confirm_outcome_drafts. It usually takes 40 to 60 minutes, so expect to follow it with insights_get_job_status (outcome_inference true). |
Confirm outcome draftsinsights_confirm_outcome_drafts | Use to accept AI-suggested outcome mappings so they count. Confirm AI-suggested outcome mappings (from insights_list_outcome_mappings status draft) so they count in the outcomes: draft_ids, or all true for every draft on the revision. Then recompute once and return the new P10/P50/P90 values (recompute false skips that). |
Remove the connector in your AI assistant's settings. Its tokens then stop being used and expire. To have your connection revoked immediately, email support@nplan.io.
Email support@nplan.io with the time of the problem and the assistant you were using.