ctxtest
CtxNest is a local-first, centralized context engine providing AI agents with 42 tools to manage versioned markdown knowledge across projects and a personal knowledge base, optimized for context window economy.
File Reading
read_file/read_files/read_file_by_path— Read single, batch (up to 200), or path-based filesread_file_outline— Headings-only outline without loading full contentread_section/read_file_lines— Read a single heading's body or a specific line rangedescribe_file— File metadata (tags, size, history, backlinks) without loading content
File Writing
create_file/create_files— Create single or batch (up to 200) filesupdate_file/update_file_section— Full replace or surgical per-heading update (auto-commits to git)delete_file/delete_files— Delete single or batch (up to 500) filesmove_file— Rename or relocate a filejournal_append— Append a timestamped entry to today's journal
Search & Discovery
search— FTS5 full-text search with inline excerpts and highlightsbundle_search— Search and concatenate results into a token-budgeted XML/Markdown blobregex_search/grep_in_file— Cross-file or within-file regex searchfind_related— Files sharing tags, ranked by overlapwhats_new— Files created/modified since a checkpointproject_map— Compact indented outline of an entire project or knowledge base
Tagging & Favorites
add_tags/remove_tags/list_tags— Manage tagsset_favorite— Mark/unmark favoritessuggest_tags— Propose tags based on corpus (no LLM required)tag_search_results— Bulk-apply tags to all files matching a query
Folders & Projects
list_files/list_folders— List files or folders with filterscreate_folder/delete_folder— Create (nested) or recursively delete foldersregister_project/list_projects— Register external repos and list all projectsstats— Aggregate counts, top tags, per-project breakdown
Versioning & Integrity
get_history/get_diff/restore_file— Git history, diffs, and rollbackcommit_backup— Commit and push a project to gitdiff_against_disk/refresh_index— Detect and reconcile drift from external edits
Web Clipping
clip_url— Fetch a page, extract content via Readability, and store as Markdown (supports auth-walled pages with cookie/token retry)
All file-returning tools include est_tokens and size_bytes; list/search tools inline tags and excerpts to minimize round-trips.
ctxtest (ctxnest)
This is a simple "Hello World" MCP (Model Context Protocol) server created for testing purposes.
Features
This server exposes the following tools:
hello-world: A greeting tool.Input:
name(string)Output: A personalized hello message.
stat: A status check tool.Output: Returns "running well".
Related MCP server: brain-mcp
Getting Started
Prerequisites
Node.js (v18 or higher)
npm
Installation
Clone or navigate to the project directory.
Install dependencies:
npm install
Running the Server
To start the server on stdio:
npm startBuilding the Project
To compile the TypeScript source code:
npm run buildNote
This is only a test project.
Available Tools
2 toolshello-worldC
A simple hello world tool
| Name | Required | Description | Default |
|---|---|---|---|
| name | Yes | The name to say hello to |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries the full burden. It only says 'simple hello world tool' without disclosing traits like output format, side effects, or required permissions.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is very short (one sentence) and has no waste, but it is under-specified. It could be expanded slightly to improve clarity.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the tool's simplicity (1 required param, no output schema), the description is minimally adequate. However, it lacks detail about the return value or what the tool actually does with the name.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100% (the 'name' parameter has a description). The description adds no additional meaning beyond the schema's 'The name to say hello to'. Baseline 3 is appropriate.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description says 'A simple hello world tool', which implies a greeting but does not explicitly state the verb (e.g., 'Says hello') or the resource. It is somewhat vague but not a tautology.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No guidance on when to use this tool vs. the sibling 'stat'. There is no mention of context or alternatives.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
statB
Check the status of the server
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are available, so the description bears full responsibility for behavioral disclosure. It merely states 'Check the status' without detailing what status information is returned (e.g., health, uptime) or any potential side effects. The description lacks depth.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single sentence without unnecessary words. It is highly concise and front-loaded with the action.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given no output schema and no annotations, the description is too minimal. It does not explain what the output looks like or potential error conditions. For a simple status tool, it is adequate but could be improved by briefly noting output format (e.g., plain text, JSON).
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The tool has zero parameters, so no parameter information is needed. The description adds no meaning beyond the input schema, but per guidelines, 0 parameters yields a baseline of 4.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description 'Check the status of the server' clearly identifies the verb (check) and resource (status of the server). It is specific and distinct from the sibling tool 'hello-world', though it does not explicitly differentiate from it.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides no guidance on when to use this tool versus alternatives, nor does it mention any prerequisites or exclusion criteria. It only states the action without context.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
Tool Schema Changelog
Recent tool additions, removals, and schema changes observed during successful MCP inspections.
49 tool updates
v9.5.3- Removed
add_tags - Removed
bundle_search - Removed
clip_url - Removed
commit_backup - Removed
confirm_hand - Removed
create_file - Removed
create_files - Removed
create_folder - Removed
delete_file - Removed
delete_files - Removed
delete_folder - Removed
describe_file - Removed
describe_hands_schema - Removed
diff_against_disk - Removed
find_related - Removed
get_diff - Removed
get_history - Removed
grep_in_file - Added
hello-world - Removed
journal_append - Removed
list_files - Removed
list_folders - Removed
list_hands - Removed
list_projects - Removed
list_tags - Removed
move_file - Removed
onboard_agent - Removed
project_map - Removed
read_file - Removed
read_file_by_path - Removed
read_file_lines - Removed
read_file_outline - Removed
read_files - Removed
read_section - Removed
refresh_index - Removed
regex_search - Removed
register_project - Removed
reload_hands - Removed
remove_tags - Removed
restore_file - Removed
search - Removed
set_favorite - Added
stat - Removed
stats - Removed
suggest_tags - Removed
tag_search_results - Removed
update_file - Removed
update_file_section - Removed
whats_new
1 tool update
v9.4.0- Changed
onboard_agent3 fields changed- added
Input schema / properties / confirmAdded value: +{ + "description": "MANDATORY: Set to true only after obtaining explicit user consent to modify context files.", + "type": "boolean" +} - changed
Input schema / properties / target_agent / enumPrevious value: -[ - "claude-code", - "codex", - "gemini", - "cursor", - "continue", - "generic" -]New value: +[ + "claude-code", + "codex", + "gemini", + "antigravity", + "cursor", + "continue", + "generic" +] - changed
Input schema / requiredPrevious value: -[ - "project_id" -]New value: +[ + "project_id", + "confirm" +]
1 tool update
v9.1.2- Added
onboard_agent
TDQS
Scored across 2 tools
The two tools, hello-world and stat, have completely distinct purposes with no overlap. An agent can easily distinguish between them without confusion.
The naming conventions are not consistent: hello-world uses a hyphen and two words, while stat is a single word. This inconsistency could confuse an agent expecting a uniform pattern.
With only 2 tools, the server feels very thin. For a server named ctxtest, more tools would be expected to provide meaningful functionality beyond a hello world and status check.
The tool surface is too sparse to infer a clear domain. There are obvious gaps: no tools for configuration, error handling, or any context-related operations that the server name might imply.
Maintenance
Related MCP Connectors
Your versioned memory across every AI tool — context maps, personal memory, and tasks over MCP.
One shared context your team's AI tools read & write over MCP. No re-explaining. Free.
Universal memory for AI agents and tools. Save, organize and search context anywhere.
AI research library. Save, organise and reuse notes and webpages as clean markdown context.
Related MCP Servers
- AlicenseAqualityDmaintenanceProvides intelligent code context and analysis through semantic compression, AST parsing, and multi-language support. Offers 60-80% token reduction while enabling AI assistants to understand codebases through local analysis, OpenAI-enhanced insights, and GitHub repository integration.616 npm3MIT
- AlicenseAqualityBmaintenanceCognitive prosthetic for AI agents. Indexes conversation history from ChatGPT, Claude Code, Cursor, and Gemini CLI into searchable embeddings. 25 MCP tools including tunnel_state (resume where you left off), switching_cost (quantify context-switch penalty), thinking_trajectory (track idea evolution), and alignment_check (decisions vs principles). LanceDB + Parquet, 12ms recall, local-first.2515 PyPI71MIT
- AlicenseAqualityAmaintenanceLocal RAG system for Claude Code with hybrid search (semantic + BM25), cross-encoder reranking, markdown-aware chunking, and 12 MCP tools. Zero external servers, pure ONNX in-process.13415 PyPI278MIT
- AlicenseAqualityBmaintenanceProvides persistent memory and a codebase knowledge graph for AI coding assistants, enabling shared context across multiple tools like Claude, Cursor, and ChatGPT, with significant token reduction.513 npmMIT