Skip to content
verify mcp Beta VerifyMCP is currently in beta. If you notice any issues, get in touch and we’ll put it right.

ContextLayer

REMOTE · API.DOTNOVA.IO · SCANNED SEP 20

Intelligent context infrastructure for AI teams: knowledge graph, sessions, tasks, documents.

Available components

0 this week 77 Trust /100
Trust breakdown (7 categories)

How this component scores in each security and reliability category. Every signal is checked automatically against the live server, and we only credit what we can confirm. How we score → Why this is hard to score →

Endpoint Security57
Transport & Reachability100
Schema Quality & AI Usability86
  • 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 7903 tokens (~121/item across 65 items; 62 tools + 3 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 Management100
  • No destabilizing schema changes in the last 30 days.Pass
Tool Coverage100
  • 100% of tools have a non-trivial description (not blank, and not just the tool's name).Pass
  • 100% of tool parameters carry a description.Pass
Tool Safety75
  • No prompt-injection markers were found in the server instructions, tool names or descriptions we captured.Pass
  • 0 of 11 tool(s) whose name or description implies an irreversible operation declare an MCP destructiveHint annotation; "delete_document" implies "delete" and declares no destructiveHint at all, which the MCP spec reads as destructive by default. See how to fix → Fail
  • An AI judge read all 64 captured unit(s) of tool text and found none that tries to manipulate the model reading it.Pass
Capabilities60
  • Spec-recency check failed: implements MCP spec 2025-06-18; the latest is 2026-07-28. See how to fix → Fail
Install

How do I install the ContextLayer MCP server?

ContextLayer is a hosted endpoint at https://api.dotnova.io/mcp, so there is nothing to install locally. Ready-made configuration for Claude, Cursor, VS Code, Codex and 5 more is on this page, copied from each client's own documentation.

remote · api.dotnova.io

# add to Claude Code
claude mcp add --transport http dotnova-context-layer 'https://api.dotnova.io/mcp'
// .cursor/mcp.json
{
  "mcpServers": {
    "dotnova-context-layer": {
      "url": "https://api.dotnova.io/mcp"
    }
  }
}
// .vscode/mcp.json
{
  "servers": {
    "dotnova-context-layer": {
      "type": "http",
      "url": "https://api.dotnova.io/mcp"
    }
  }
}
# ~/.codex/config.toml
[mcp_servers.dotnova-context-layer]
url = "https://api.dotnova.io/mcp"
// opencode.json
{
  "$schema": "https://opencode.ai/config.json",
  "mcp": {
    "dotnova-context-layer": {
      "type": "remote",
      "url": "https://api.dotnova.io/mcp",
      "enabled": true
    }
  }
}
# add to OpenClaw
openclaw mcp add dotnova-context-layer --url 'https://api.dotnova.io/mcp' --transport streamable-http
# ~/.hermes/config.yaml
mcp_servers:
  dotnova-context-layer:
    url: "https://api.dotnova.io/mcp"
// ~/.netclaw/config/netclaw.json
{
  "McpServers": {
    "dotnova-context-layer": {
      "Transport": "http",
      "Url": "https://api.dotnova.io/mcp"
    }
  }
}
# add to Vellum
assistant mcp add dotnova-context-layer -t streamable-http -u 'https://api.dotnova.io/mcp'
// mcp.json
{
  "mcpServers": {
    "dotnova-context-layer": {
      "type": "http",
      "url": "https://api.dotnova.io/mcp"
    }
  }
}

The mcpServers block is a cross-client convention. Remote transports vary, so check your client's docs.

Changelog

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.

  • 26 Aug 26 −1
    • We updated how we score, so this day's move reflects our rubric, not a change to the server See what changed → functional
  • 25 Aug 26 0
    • Stability: 0.97 → pass security
  • 24 Aug 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 Aug 26 0
    • We updated how we score, so this day's move reflects our rubric, not a change to the server See what changed → functional
  • 6 Aug 26 0
    • Authorization: Authorisation not fully verified: no authorisation is required to call this server, and 62 tool(s) never declared a destructiveHint. The MCP spec treats an absent hint as destructive by default, so we cannot call this surface safe. security
    • Schema quality: unverified → fail functional
    • Schema quality: 2231 → 121 functional
    • Tool coverage: unverified → 100 functional
    • First check of Schema quality: 100 functional
    • First check of Tool coverage: 100 functional
    • New resource “Current Block” functional
    • New resource “Projects” functional
    • New resource “User Profile” functional
    • New tool “accept_org_invite” functional
    • New tool “add_task_dependency” functional
    • New tool “add_team_member” functional
    • New tool “assign_task” functional
    • New tool “create_position” functional
    • New tool “create_project” functional
    • New tool “create_sprint” functional
    • New tool “create_task” functional
    • New tool “create_team” functional
    • New tool “delete_document” functional
    • New tool “delete_position” functional
    • New tool “delete_project” functional
    • New tool “delete_task” functional
    • New tool “delete_team” functional
    • New tool “delete_user” functional
    • New tool “end_session” functional
    • New tool “find_documents” functional
    • New tool “get_context” functional
    • New tool “get_context_routing” functional
    • New tool “get_document” functional
    • New tool “get_live_activity” functional
    • New tool “get_my_stats” functional
    • New tool “get_org_stats” functional
    • New tool “get_project_status” functional
    • New tool “get_session_details” functional
    • New tool “get_team_details” functional
    • New tool “invite_user” functional
    • New tool “link_task_session” functional
    • New tool “link_team_project” functional
    • New tool “list_colleagues” functional
    • New tool “list_notifications” functional
    • New tool “list_pending_invites” functional
    • New tool “list_positions” functional
    • New tool “list_project_members” functional
    • New tool “list_project_teams” functional
    • New tool “list_projects” functional
    • New tool “list_sessions” functional
    • New tool “list_sprints” functional
    • New tool “list_tasks” functional
    • New tool “list_teams” functional
    • New tool “log_activity” functional
    • New tool “log_trace” functional
    • New tool “log_traces_batch” functional
    • New tool “mark_notification_read” functional
    • New tool “move_task_to_sprint” functional
    • New tool “remove_task_dependency” functional
    • New tool “remove_team_member” functional
    • New tool “remove_user_from_org” functional
    • New tool “search_entities” functional
    • New tool “set_context_routing” functional
    • New tool “setup_organization” functional
    • New tool “start_session” functional
    • New tool “unassign_task” functional
    • New tool “unlink_team_project” functional
    • New tool “update_org” functional
    • New tool “update_position” functional
    • New tool “update_project” functional
    • New tool “update_task” functional
    • New tool “update_team” functional
    • New tool “update_user” functional
    • New tool “upload_document” functional
    • New tool “whoami” functional
  • 31 Jul 26 0
    • We updated how we score, so this day's move reflects our rubric, not a change to the server See what changed → functional
  • 30 Jul 26 0
    • We updated how we score, so this day's move reflects our rubric, not a change to the server See what changed → functional
  • 27 Jul 26 0
    • We updated how we score, so this day's move reflects our rubric, not a change to the server See what changed → functional
Diagnostics

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 · Probed https://api.dotnova.io/mcp

TLS valid

Negotiated TLS 1.3 with TLS_AES_128_GCM_SHA256 .

Subject Issuer Valid from Valid until Key Signature Serial
CN=api.dotnova.io CN=YE2,O=Let's Encrypt,C=US 4 Sept 2026 3 Dec 2026 ECDSA 256 ECDSA-SHA384 5eed67061c17caf3f5dbc691a3f56b22b9d
SANs: api.dotnova.io
CN=YE2,O=Let's Encrypt,C=US (CA) CN=Root YE,O=ISRG,C=US 3 Sept 2025 2 Sept 2028 ECDSA 384 ECDSA-SHA384 4df3b15dd6c0784c507cd37b58e6f115
CN=Root YE,O=ISRG,C=US (CA) CN=ISRG Root X2,O=Internet Security Research Group,C=US 13 May 2026 2 Sept 2032 ECDSA 384 ECDSA-SHA384 872165fc34b6e5fba8add5b3705fb53a
CN=ISRG Root X2,O=Internet Security Research Group,C=US (CA) CN=ISRG Root X1,O=Internet Security Research Group,C=US 13 May 2026 2 Sept 2032 ECDSA 384 SHA256-RSA 6c8f1dc727c7117f7baf853ac980f9cd

Background: What to check on a remote MCP endpoint →

DNSSEC insecure

Validation of api.dotnova.io. Not signed

Zone DS Keys Algorithms Outcome
. trust_anchor 20326, 38696 8, 8 Verified
io. present 57355 8 Verified
dotnova.io. absent Unsigned (proven) parent-signed NSEC/NSEC3 proves an unsigned delegation
Authentication No authorisation required

The endpoint answered without asking for a token. Anyone who knows the URL can reach it.

Result No authorisation required
HTTP status 200

Background: How OAuth 2.1 works in the 2026 MCP spec →

Transports 2 probes
Transport URL Outcome Status Location
streamable-http https://api.dotnova.io/mcp Verified 200
http (plaintext) http://api.dotnova.io/mcp HTTPS enforced 308 https://api.dotnova.io/mcp
MCP tools · 62 exposed · ~5,634 tokens

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 →

Tool Tokens
setup_organization ~157

Set up your organization in one step (admin only). Use this for onboarding.

NameTypeReqDescription
business_modelstringyesBusiness model description
custom_contextstring|nullCustom context for AI agents (optional)
descriptionstringyesOrganization description
linksarray|nullLinks: [{"label": "...", "url": "...", "type": "website|repository|documentation|slack|jira|notion|figma|other"}]
objectivesarrayyesOrganization objectives
projectsarray|nullProjects to create: [{"name": "...", "description": "..."}]
teamsarray|nullTeams to create: [{"name": "...", "description": "..."}]

No output schema declared.

No examples provided.

start_session ~204

Start a work session. If a project is provided (project_name or project_id), the session is bound to it; if neither is provided, an unbound (projectless) session is created — useful when the work isn't tied to a specific project. Reuses an existing active session for the same scope (per-project, or one global projectless session per user). Task type: coding, review, planning, debugging, research, meeting, other.

NameTypeReqDescription
project_idstring|nullProject ID to start the session in (optional if project_name provided)
project_namestring|nullProject name (optional, alternative to project_id)
sourcestring|nullSource client identifier (e.g. 'claude-code', 'claude-web', 'chatgpt', 'cursor'). Helps track which tool created the session.
task_typestringyesType of task: coding, review, planning, debugging, research, meeting, other

No output schema declared.

No examples provided.

unassign_task ~46

Remove a user from a task's assignees.

NameTypeReqDescription
task_idstringyesTask ID
user_idstringyesUser ID to remove from assignees

No output schema declared.

No examples provided.

unlink_team_project ~96

Unlink a project from a team. Find both by name or ID.

NameTypeReqDescription
project_idstring|nullProject ID (optional if project_name is provided)
project_namestring|nullProject name (optional if project_id is provided)
team_idstring|nullTeam ID (optional if team_name is provided)
team_namestring|nullTeam name (optional if team_id is provided)

No output schema declared.

No examples provided.

update_org ~132

Update your organization's details (owner only). Set name, description, business model, objectives, custom context for AI, or links.

NameTypeReqDescription
business_modelstring|nullBusiness model description (optional)
custom_contextstring|nullCustom context for AI agents (optional)
descriptionstring|nullOrganization description (optional)
linksLinks as JSON array: [{"label": "...", "url": "...", "type": "..."}] (optional)
namestring|nullOrganization name (optional)
objectivesarray|nullObjectives as a list of strings (optional)

No output schema declared.

No examples provided.

update_position ~129

Update a position's title, description, or permissions (admin only). Find by title or ID.

NameTypeReqDescription
new_descriptionstring|nullNew description (optional)
new_permissionsNew permissions JSON object mapping permission keys to booleans, e.g. {"can_view_all_projects": true}. Use list_positions to see all available keys.
new_titlestring|nullNew title (optional)
position_idstring|nullPosition ID (optional if position_title is provided)
position_titlestring|nullPosition title to find (optional if position_id is provided)

No output schema declared.

No examples provided.

update_project ~116

Update a project's name, description, or links. Find by name or ID.

NameTypeReqDescription
linksLinks as JSON array: [{"label": "...", "url": "...", "type": "..."}] (optional)
new_descriptionstring|nullNew description (optional)
new_namestring|nullNew name (optional)
project_idstring|nullProject ID (optional if project_name is provided)
project_namestring|nullProject name to find (optional if project_id is provided)

No output schema declared.

No examples provided.

update_task ~206

Update a task's status, title, description, priority, or team assignment. Use this to move tasks through the workflow (todo -> in_progress -> done) or reassign to a team.

NameTypeReqDescription
descriptionstring|nullNew description
due_atstring|nullDue date in ISO 8601 format (e.g. '2026-03-15T00:00:00Z'), or null to clear
prioritystring|nullNew priority: low, medium, high, urgent
statusstring|nullNew status: todo, in_progress, done, cancelled
tagsarray|nullNew tags (replaces existing tags)
task_idstringyesTask ID to update
team_idstring|nullTeam ID to assign (optional)
team_namestring|nullTeam name to assign (optional, alternative to team_id)
titlestring|nullNew title

No output schema declared.

No examples provided.

update_team ~102

Update a team's name, description, or objectives. Find by name or ID.

NameTypeReqDescription
new_descriptionstring|nullNew description (optional)
new_namestring|nullNew name (optional)
new_objectivesarray|nullNew objectives (optional)
team_idstring|nullTeam ID (optional if team_name is provided)
team_namestring|nullTeam name to find (optional if team_id is provided)

No output schema declared.

No examples provided.

update_user ~101

Update an existing user's name, role, positions, or skills (admin/owner only).

NameTypeReqDescription
new_namestring|nullNew name (optional)
new_rolestring|nullNew role: member or admin (optional)
positionsarray|nullPosition titles to assign (optional — replaces existing)
skillsarray|nullSkills list (optional — replaces existing)
userstringyesUser name or email to find

No output schema declared.

No examples provided.

upload_document ~358

Upload a document to the organization's knowledge base. Documents can be templates, policies, contracts, procedures, guides, or references. They are indexed in the knowledge graph and automatically surfaced as context when relevant to a task. Supports both text and binary files: for binary files (PDFs, images, etc.), set is_base64=true and provide the content as a base64-encoded string, along with the appropriate mime_type (e.g. 'application/pdf', 'image/png'). Optionally set file_name for the original filename. Embeddings are generated automatically for search.

NameTypeReqDescription
categorystringyesCategory: template, policy, procedure, reference, contract, guide, checklist, other
contentstringyesFull document content (text/markdown)
file_namestring|nullOriginal file name (e.g. 'contract.pdf'). Optional.
is_base64boolean|nullSet to true if content is base64-encoded (for binary files like PDFs, images)
mime_typestring|nullMIME type of the content (default: text/plain). Use application/pdf, image/png, etc. for binary files.
project_idstring|nullProject ID to associate with (optional, alternative to project_name)
project_namestring|nullProject name to associate with (optional)
tagsarray|nullTags for categorization and search (e.g. ['tax', 'contract', 'template'])
team_idsarray|nullTeam IDs to associate with (optional, alternative to team_names)
team_namesarray|nullTeam names to associate the document with (optional, for team-level access control)
titlestringyesDocument title

No output schema declared.

No examples provided.

whoami ~42

Get your profile, organization, projects, recent sessions, and top entities. This is the best starting point — call this first to understand what's available. No parameters needed.

Input schema present but exposes no named parameters.

No output schema declared.

No examples provided.

Common questions

What is the ContextLayer MCP server?

ContextLayer is an MCP server listed in the public MCP registry as io.github.DotNova/context-layer. Intelligent context infrastructure for AI teams: knowledge graph, sessions, tasks, documents. This page covers its hosted endpoint (https://api.dotnova.io/mcp).

Is the ContextLayer MCP server safe to use?

ContextLayer scores 77 out of 100 on VerifyMCP. 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 ContextLayer MCP server expose?

ContextLayer exposes 62 tools: accept_org_invite, add_task_dependency, add_team_member, assign_task, create_position, and 57 more. Their descriptions and schemas cost roughly 5,634 tokens of context every time the server is loaded.

Does the ContextLayer MCP server require authentication?

No. We connected to ContextLayer without credentials and it answered, so anything it exposes is reachable by anyone who knows the address.

Is the ContextLayer MCP server still maintained?

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