index365 MCP
NPM · @INDEX365/MCP · SCANNED SEP 20
Start index365 scans and read prioritized findings your coding agent can use.
Available components
How this component scores in each security and reliability category. Every signal is checked automatically from public evidence about the published package, including repeated runs of it in an isolated sandbox, and we only credit what we can confirm. How we score → Why this is hard to score →
Supply Chain Security98
- No malware found by supply-chain analysis.Pass
- No known CVEs affecting this package version or its production dependencies.Pass
- No install/post-install scripts declared.Pass
- 31 of 96 dependencies flagged as unhealthy. View diagnostics → Partial
Provenance & Transparency19
- Repository check failed: no source repository is declared. See how to fix → View diagnostics → Fail
- Provenance check failed: no build-provenance attestation is published. See how to fix → View diagnostics → Fail
- Clear OSI-approved license (MIT).Pass
- Actively maintained (last published 48 days ago).Pass
- Security-disclosure policy not yet verified: we couldn't inspect the source repository.Unverified
Schema Quality & AI Usability81
- 100% of prompts and resources have a non-trivial description (not blank, and not just the item's name).Pass
- AI-judged instruction clarity (excellent).Pass
- Context-footprint check failed: tool/resource definitions use about 2308 tokens (~209/item across 11 items; 11 tools + 0 resources), over budget; trim descriptions and params. See how to fix → Fail
- Usage-examples check failed: none of the tools include examples. See how to fix → Fail
Stability & Change Management93
- Stability observed for 28 of 30 days with no destabilising changes; credit accrues until the full window elapses.Partial
Tool Coverage95
- 100% of tools have a non-trivial description (not blank, and not just the tool's name).Pass
- 85% of tool parameters carry a description.Partial
Tool Safety100
- No prompt-injection markers were found in the server instructions, tool names or descriptions we captured.Pass
- We read all 11 captured tool definition(s), and no name or description among them implies an irreversible operation.Pass
- An AI judge read all 12 captured unit(s) of tool text and found none that tries to manipulate the model reading it.Pass
Capabilities100
- Implements a supported MCP spec version (2025-11-25); the latest is 2026-07-28.Pass
How do I install the index365 MCP server?
index365 MCP runs locally as an npm package, launched with npx -y @index365/mcp. Ready-made configuration for Claude, Cursor, VS Code, Codex and 5 more is on this page, copied from each client's own documentation.
npm · @index365/mcp
claude mcp add index365usa-index365 -- npx -y @index365/mcp
{
"mcpServers": {
"index365usa-index365": {
"command": "npx",
"args": [
"-y",
"@index365/mcp"
]
}
}
} {
"servers": {
"index365usa-index365": {
"command": "npx",
"args": [
"-y",
"@index365/mcp"
]
}
}
} codex mcp add index365usa-index365 -- npx -y @index365/mcp
{
"$schema": "https://opencode.ai/config.json",
"mcp": {
"index365usa-index365": {
"type": "local",
"command": [
"npx",
"-y",
"@index365/mcp"
],
"enabled": true
}
}
} openclaw mcp add index365usa-index365 --command npx --arg -y --arg @index365/mcp
mcp_servers:
index365usa-index365:
command: "npx"
args: ["-y", "@index365/mcp"] {
"McpServers": {
"index365usa-index365": {
"Transport": "stdio",
"Command": "npx",
"Arguments": [
"-y",
"@index365/mcp"
]
}
}
} assistant mcp add index365usa-index365 -t stdio -c npx -a -y @index365/mcp
{
"mcpServers": {
"index365usa-index365": {
"command": "npx",
"args": [
"-y",
"@index365/mcp"
]
}
}
} Every change we have recorded for this component, newest first. Security-relevant changes are always shown. ▲ marks a change for the better, ▼ a change for the worse; unmarked changes are neutral.
- 18 Sept 26 +1
No change was recorded against any check on this day. Stability & Change Management went from 83 to 87. That category is still filling its 30-day observation window: 25 days of observed history at the previous scan, 26 at this one. The score rises as the window fills, whether or not the server changes.
- 16 Sept 26 −2
- Stability: pass → 0.80 functional
- 15 Sept 26 0
- Stability: 0.97 → pass security
- 14 Sept 26 +1
No change was recorded against any check on this day. Stability & Change Management went from 93 to 97. That category is still filling its 30-day observation window: 28 days of observed history at the previous scan, 29 at this one. The score rises as the window fills, whether or not the server changes.
- 11 Sept 26 +1
No change was recorded against any check on this day. Stability & Change Management went from 83 to 87. That category is still filling its 30-day observation window: 25 days of observed history at the previous scan, 26 at this one. The score rises as the window fills, whether or not the server changes.
- 9 Sept 26 −2
- Stability: pass → 0.80 functional
- 8 Sept 26 0
- Stability: 0.97 → pass security
- 7 Sept 26 +1
No change was recorded against any check on this day. Stability & Change Management went from 93 to 97. That category is still filling its 30-day observation window: 28 days of observed history at the previous scan, 29 at this one. The score rises as the window fills, whether or not the server changes.
Diagnostic detail from the automated scan of this channel: what the scanner observed at each step, so you can see exactly where a check passed or failed. It is informational only and never changes the trust score.
Captured 20 Sept 2026 · Analysed npm/@index365/mcp@1.0.0
Provenance No attestation
The registry publishes no build provenance for this version, so there is nothing to verify.
| Result | No attestation |
|---|---|
| Ecosystem | npm |
Background: How many MCP packages publish verified provenance →
Dependencies 96 packages
| Packages resolved | 96 |
|---|---|
| Stale | 31 |
| Tree resolution | Complete |
Background: SBOMs and build attestations, explained →
The tools this component advertises to a client, with an estimated token cost for each. Expand a tool to see its parameters and schema. The per-tool counts are indicative and are not scored directly; the schema's total context footprint is one signal in Schema Quality & AI Usability. A tool's description is untrusted text the model reads on every call, which is what makes this list a security surface and not just an inventory: how tool poisoning works →
index365_archive_project Archive a project ~164
Reversibly archive a project so it leaves active lists and cannot start new scans. Scan history and API keys remain available, and index365_restore_project reactivates the same row. Requires projects:delete. Safe to retry. Best for: retiring a domain you no longer scan. Not for: permanent deletion, which this is not. Common mistake: omitting confirmDomain, which must echo the project's exact domain. Example: index365_archive_project({ projectId: '<uuid>', confirmDomain: 'acme.com' }). Next: index365_list_projects with status archived to verify.
| Name | Type | Req | Description |
|---|---|---|---|
| confirmDomain | string | yes | The project's exact domain, echoed to authorize the archive |
| projectId | string | yes | Project id to archive (from index365_list_projects) |
No output schema declared.
No examples provided.
index365_create_project Create a project ~157
Create a domain-anchored project in the organization. Requires the projects:write scope. Idempotent by domain: creating an existing domain returns that same project (no duplicate), so a retry is safe. Best for: registering a new site before its first scan. Not for: reactivating an archived project (use index365_restore_project). Common mistake: calling index365_start_scan before the project exists. Example: index365_create_project({ domain: 'acme.com', name: 'Acme' }). Next: index365_start_scan with the returned projectId.
| Name | Type | Req | Description |
|---|---|---|---|
| domain | string | yes | Domain to scan, e.g. acme.com |
| name | string | – | Display name (defaults to the domain) |
No output schema declared.
No examples provided.
index365_get_finding Get one finding ~169
Full detail for one finding by its stable id (from index365_list_findings): evidence, affected URLs, remediation, machine-readable agentActions, and a composed copy-pasteable fixPrompt. Best for: pulling the exact fix instruction before editing a repo. Not for: discovery (call index365_list_findings first to get the findingId). Common mistake: re-deriving a fix when fixPrompt and agentActions already specify it. Example: index365_get_finding({ runId: '<uuid>', findingId: 'f_ab12cd34' }). Next: apply the fix, then index365_start_scan to confirm it is resolved.
| Name | Type | Req | Description |
|---|---|---|---|
| findingId | string | yes | Stable finding id (f_...) |
| runId | string | yes | Run the finding belongs to |
No output schema declared.
No examples provided.
index365_get_report Get the compact report ~276
Compact, product-aware report for a completed scan. Pass EXACTLY ONE of runId or projectId. runId reads that run's report. projectId reads the project's latest completed report: add product marketing_signal for the marketing report, otherwise the newest completed AI-Readiness run is used. Discriminate on the product field: AI-Readiness serves score, severity mix, and foundation files; Marketing Signal serves score, the five stage scores (find, trust, act, measure, improve), and source coverage. Best for: the FIRST read after a scan completes, before paging findings. Not for: per-finding detail (index365_get_finding) or starting scans (index365_start_scan). Common mistake: passing both runId and projectId, or dumping every finding into context without reading this first. Example: index365_get_report({ projectId: '<uuid>', product: 'marketing_signal' }). Next: index365_list_findings with the runId for the prioritized list.
| Name | Type | Req | Description |
|---|---|---|---|
| product | string | – | With projectId only: which product's latest report (default ai_readiness). |
| projectId | string | – | Project id for the latest completed report (pass this OR runId, not both) |
| runId | string | – | Run id (pass this OR projectId, not both) |
No output schema declared.
No examples provided.
index365_get_scan_status Get scan status ~148
Status and summary for one run: progress while running; score, severity counts, and links once completed. Adds pollAfterSeconds and, while running, a rough etaSeconds. Scans typically take 2-5 minutes. Best for: recovering when a blocking index365_start_scan call was cut off client-side, or checking an older run. Not for: findings (index365_get_report first, then index365_list_findings). Common mistake: starting a new scan while this one is still running. Example: index365_get_scan_status({ runId: '<uuid>' }). Next: index365_get_report once status is completed.
| Name | Type | Req | Description |
|---|---|---|---|
| runId | string | yes | Run id |
No output schema declared.
No examples provided.
index365_list_connected_signals List connected-source signals ~116
Normalized signal rows imported from a project's connected sources. Best for: reading the evidence base behind Marketing Signal measure-stage findings. Not for: provider availability (index365_list_integrations). Common mistake: treating an empty list as an error; it stays empty with sourceCoverage public_only until integrations launch. Example: index365_list_connected_signals({ projectId: '<uuid>' }). Next: index365_start_scan with product marketing_signal to score the site against these signals.
| Name | Type | Req | Description |
|---|---|---|---|
| projectId | string | yes | Project id |
No output schema declared.
No examples provided.
index365_list_findings List findings ~191
Paginated findings for a completed run of either product (contract v2: stable findingId, category, severity, evidence, remediation; Marketing Signal findings also carry a stage). Best for: triaging by severity, category, or stage. Not for: full detail of one finding (index365_get_finding) or first orientation (index365_get_report first). Common mistake: requesting a huge limit; it is capped at 50, so page with cursor. Example: index365_list_findings({ runId: '<uuid>', severity: 'critical' }). Next: index365_get_finding with a findingId for the exact fix.
| Name | Type | Req | Description |
|---|---|---|---|
| category | string | – | – |
| cursor | string | – | – |
| limit | integer | – | – |
| runId | string | yes | Completed run id |
| severity | string | – | – |
| stage | string | – | Marketing Signal funnel stage filter |
No output schema declared.
No examples provided.
index365_list_integrations List connected-signal integrations ~118
Provider registry plus per-project connection status for connected signals (GA4, Search Console, Tag Manager, ads, CRM). Best for: checking what a project can connect and each provider's phase. Not for: imported signal data (index365_list_connected_signals). Common mistake: expecting live connections; providers report phase planned until hosted connections launch. Example: index365_list_integrations({ projectId: '<uuid>' }). Next: index365_list_connected_signals for the imported rows.
| Name | Type | Req | Description |
|---|---|---|---|
| projectId | string | yes | Project id |
No output schema declared.
No examples provided.
index365_list_projects List projects ~179
List the organization's projects (domain-anchored workspaces). Omitted status excludes archived projects; pass active, paused, archived, or all. Paginated: pass cursor from the previous page (default 20, max 50). Best for: resolving a projectId before a scan, or finding an archived project to restore. Not for: run history or scores. Common mistake: guessing a projectId instead of listing first. Example: index365_list_projects({ status: 'active' }). Next: index365_start_scan with the projectId, or index365_create_project if the domain is not listed.
| Name | Type | Req | Description |
|---|---|---|---|
| cursor | string | – | pagination.nextCursor from the previous page |
| limit | integer | – | Page size (default 20, max 50) |
| status | string | – | Lifecycle filter. Omit to exclude archived projects. |
No output schema declared.
No examples provided.
index365_restore_project Restore a project ~125
Restore an archived project to active status without changing its id, history, or keys. Requires projects:write. Safe to retry; an active project remains active. Best for: reactivating a domain you archived. Not for: creating a new domain (use index365_create_project). Common mistake: looking for archived ids in the default listing; pass status archived to index365_list_projects. Example: index365_restore_project({ projectId: '<uuid>' }). Next: index365_start_scan for fresh findings.
| Name | Type | Req | Description |
|---|---|---|---|
| projectId | string | yes | Archived project id to restore |
No output schema declared.
No examples provided.
index365_start_scan Start a scan and wait for the result ~408
Start a paid scan and wait for the result. product: ai_readiness (default; how well AI agents and AI search read the site), marketing_signal (find, trust, act, measure), or website_security (not available over MCP yet). Scans ONE URL: pass url for a same-domain page like '/pricing', or omit it for the project homepage. Spends 10 org credits (flat) and needs the runs:write scope. This call BLOCKS: it polls internally and returns the final status, score, severity counts, and dashboard link (scans typically take 2-5 minutes). If the wait cap expires it returns a non-error still-running payload; recover with index365_get_scan_status, never by starting again. Always pass idempotencyKey: a retry with the same key attaches to the same run. Best for: the one golden-path call that produces findings. Not for: reading an existing run (index365_get_scan_status) or a finished report (index365_get_report). Common mistake: retrying after a timeout without the same idempotencyKey, which double-spends credits. Example: index365_start_scan({ projectId: '<uuid>', product: 'marketing_signal', url: '/pricing', idempotencyKey: 'fix-loop-1' }). Next: index365_get_report with the returned runId.
| Name | Type | Req | Description |
|---|---|---|---|
| idempotencyKey | string | – | Retry-safety key. A retry with the same key attaches to the same run. |
| product | string | – | Scan product (default ai_readiness). website_security is not available over MCP yet. |
| projectId | string | yes | Project to scan (from index365_list_projects) |
| url | string | – | The single page to scan on the project's own domain (its apex or any subdomain, e.g. staging.example.com). Absolute URL or root-relative path like '/pricing'. Omit to scan the project homepage. A cro… |
No output schema declared.
No examples provided.
What is the index365 MCP server?
index365 MCP is listed in the public MCP registry as io.github.index365usa/index365. Start index365 scans and read prioritized findings your coding agent can use. This page covers its npm package (@index365/mcp).
Is the index365 MCP server safe to use?
index365 MCP scores 78 out of 100 on VerifyMCP. We found no known CVEs affecting it as of 20 September 2026. It declares no install or post-install scripts. That is a record of what we were able to check automatically, not an endorsement. The category breakdown on this page shows every signal behind the number, including the ones we could not confirm.
What tools does the index365 MCP server expose?
index365 MCP exposes 11 tools: index365_list_projects, index365_create_project, index365_archive_project, index365_restore_project, index365_start_scan, and 6 more. Their descriptions and schemas cost roughly 2,051 tokens of context every time the server is loaded.
Is the index365 MCP server still maintained?
index365 MCP is still listed as active in the MCP registry. We last reached this channel on 20 September 2026. Those dates come from our own scans of the registry and the channel itself, not from anything the publisher announced.
What licence is the index365 MCP server under?
index365 MCP declares the MIT licence, which is OSI-approved. That covers the source only, and says nothing about the cost of any service it calls.