Fresh Jots MCP Server
freshjots-mcp
Fresh Jots용 Model Context Protocol(MCP) 서버입니다. Fresh Jots 노트를 MCP 도구로 노출하여 Claude Desktop, Claude Code, Cursor 등 모든 MCP 클라이언트가 직접 읽고 쓸 수 있게 합니다. AI 에이전트의 출력을 Fresh Jots 노트로 보내거나, 코딩 세션을 기록하거나, 어시스턴트가 노트북을 검색하고 업데이트하도록 할 수 있습니다. 모두 API를 통해 이루어집니다.
MCP는 AI 어시스턴트를 외부 도구와 데이터에 연결하기 위한 개방형 표준입니다. 일종의 범용 어댑터라고 생각하면 됩니다. 하나의 통합으로 모든 호환 클라이언트에서 작동합니다.
할 수 있는 일
서버는 Fresh Jots REST API와 베어러 토큰으로 통신하며 다음 도구를 제공합니다.
노트 — list_notes, read_note, create_note, append_to_note, update_note, delete_note, move_note
폴더 — list_folders, create_folder, rename_folder, delete_folder
가장 눈에 띄는 것은 **append_to_note**입니다. 정확한 파일 이름(예: ai-sessions.txt)으로 노트에 추가하고, 첫 쓰기 시 노트를 생성합니다. 반복 호출하여 AI 세션 기록, cron 출력, 실행 중인 저널 등 로그를 한곳에 축적할 수 있습니다.
노트는 API를 통해 일반 텍스트입니다. 리치(Trix) 노트는 나열하고 읽을 수 있지만, 생성이나 편집은 일반 텍스트 노트만 가능합니다.
Related MCP server: aws-helper MCP Server
요구 사항
Node.js 18 이상
Fresh Jots API 토큰(Dev 또는 Team 플랜). https://freshjots.com/settings/api_tokens에서 생성하세요. 토큰은
mn_…형태입니다.
설치
npm에 게시되기 전까지는 소스에서 빌드합니다.
git clone https://github.com/Goran-Arsov/freshjots-mcp.git
cd freshjots-mcp
npm install # also builds via the prepare script
npm run build # or build explicitly그러면 실행 가능한 서버는 dist/index.js입니다.
구성
서버는 환경 변수에서 토큰을 읽습니다.
FRESHJOTS_TOKEN(필수) —mn_…API 토큰.FRESHJOTS_API_TOKEN도 허용됩니다.FRESHJOTS_BASE_URL(선택) — 기본값은https://freshjots.com/api/v1입니다. 자체 호스팅 또는 스테이징 인스턴스용으로 재정의하세요.FRESHJOTS_PASSPHRASE(선택) — 투명한 클라이언트 측 암호화를 활성화합니다(아래 참조).
암호화
FRESHJOTS_PASSPHRASE를 설정하면 서버가 Fresh Jots가 읽을 수 없는 노트를 유지할 수 있습니다. create_note와 append_to_note는 encrypt: true 인수를 받아 본문을 기기에서 나가기 전에 로컬에서 암호화하고 노트를 클라이언트 암호화로 표시합니다. read_note는 decrypt: true로 복호화합니다. 모델은 일반 텍스트로 작업하는 동안 Fresh Jots는 암호문만 저장합니다. 키는 사용자만 보유하므로 암호를 잃으면 노트는 복구할 수 없습니다. 암호화는 노트별로 이루어지며 개인 전용입니다(팀 노트 아님). 노트의 제목과 메타데이터는 평문으로 유지됩니다. 형식(fj1: AES-256-CBC + HMAC-SHA256, PBKDF2)은 JS, Python, Ruby, 셸 클라이언트와 상호 운용됩니다. https://freshjots.com/encrypted-notes를 참조하세요.
Claude Desktop
claude_desktop_config.json(설정 → 개발자 → 구성 편집)에 추가합니다.
{
"mcpServers": {
"freshjots": {
"command": "node",
"args": ["/absolute/path/to/freshjots-mcp/dist/index.js"],
"env": { "FRESHJOTS_TOKEN": "mn_your_token_here" }
}
}
}Claude Code
claude mcp add freshjots --scope user \
-e FRESHJOTS_TOKEN='${FRESHJOTS_TOKEN}' \
-- node /absolute/path/to/freshjots-mcp/dist/index.js'${FRESHJOTS_TOKEN}'(작은따옴표)을 사용하면 비밀이 아닌 참조를 저장합니다. Claude Code는 시작 시 셸 환경에서 이를 확장하므로 셸 프로필에 export FRESHJOTS_TOKEN=mn_…을 유지하세요. 또는 구성에 리터럴 토큰을 포함하려면 -e FRESHJOTS_TOKEN=mn_…로 전달할 수 있습니다.
Cursor
~/.cursor/mcp.json(또는 프로젝트 .cursor/mcp.json)에 추가합니다.
{
"mcpServers": {
"freshjots": {
"command": "node",
"args": ["/absolute/path/to/freshjots-mcp/dist/index.js"],
"env": { "FRESHJOTS_TOKEN": "mn_your_token_here" }
}
}
}npm에 게시되면 command: "npx", args: ["-y", "freshjots-mcp"]가 위의 로컬 경로를 대체합니다.
개발
npm run build # compile TypeScript to dist/
npm test # unit tests (fetch stubbed; no network)
node smoke.mjs # live end-to-end test against the real API — needs FRESHJOTS_TOKEN;
# creates only clearly-marked [mcp-test] notes/folders and deletes them라이선스
MIT © Goran Arsov
Available Tools
11 toolsappend_to_noteAppend to a note (creates it if missing)AInspect
Append text to the note with the given exact filename, creating the note if it does not exist yet (find-or-create). This is the primitive for logging: call it repeatedly to accumulate entries (AI session logs, cron output, journal lines) in one note addressed by a stable filename like "ai-sessions.txt". Plain text only.
| Name | Required | Description | Default |
|---|---|---|---|
| filename | Yes | Exact filename to append to / create, e.g. "ai-sessions.txt". | |
| text | Yes | The text to append (added as a new entry). | |
| append_only | No | On first-touch creation only: lock the note append-only (default true). Ignored if the note already exists. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description must cover behavioral traits. It discloses find-or-create behavior, plain text only, and default append-only on creation. However, it omits details on idempotency, error handling, or whether existing append-only locks are respected on subsequent calls.
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 two sentences with no filler. The first sentence captures the core action and find-or-create behavior; the second provides the use case and constraints. Every word serves a purpose.
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 and lack of output schema, the description covers key aspects: purpose, find-or-create, usage pattern, and parameter constraints. It could mention response format or error scenarios, but is sufficient for an append operation.
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 coverage is 100%, but the description adds value by explaining 'exact filename' with example, 'new entry' semantics for text, and the default behavior of append_only on creation. This enriches the schema's bare descriptions.
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 explicitly states 'Append text to the note' with a find-or-create behavior, distinguishing it from sibling tools like create_note or update_note. The logging use case is clearly articulated.
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 identifies the tool as a 'primitive for logging' with repeated calls for accumulating entries, providing clear context. However, it does not explicitly state when not to use it or list alternatives for other operations.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
create_folderCreate a folderAInspect
Create a new folder. Folder names are unique (case-insensitive) within the account.
| Name | Required | Description | Default |
|---|---|---|---|
| name | Yes | Name of the new folder. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations provided, so description bears full burden. Mentions mutating action and uniqueness constraint, but lacks details on permissions, error handling, or consequences of duplicate names.
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?
Two concise sentences, no filler. First sentence provides purpose, second adds a key constraint. Well-structured.
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?
Simple tool with one parameter and no output schema. Description covers core action and a constraint, but fails to mention return behavior or success indication. Lacks error scenarios.
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 coverage is 100% with a basic description. The description adds useful context about case-insensitive uniqueness, which goes beyond the schema's 'Name of the new folder.'
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?
Clearly states 'Create a new folder' with a specific verb and resource. Distinguishes from siblings like delete_folder, list_folders, etc.
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?
Provides one constraint (uniqueness) but does not explicitly state when to use vs alternatives or any prerequisites. No guidance on when not to use.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
create_noteCreate a noteAInspect
Create a new plain-text note. The server derives the filename from the title. To create a note you can address later by an exact filename of your choosing, use append_to_note instead (it creates the note on first write). Plain text only.
| Name | Required | Description | Default |
|---|---|---|---|
| title | Yes | Title of the note. The server derives the filename from it. | |
| body | No | Plain-text body of the note. | |
| folder_id | No | Optional folder id to file the note under. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations provided, so description carries full burden. It mentions server derives filename from title and plain text limitation, but does not disclose behavior on duplicate titles, whether it overwrites, or any auth requirements.
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?
Three sentences, no wasted words, front-loaded with main action. Efficient and clear.
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?
For a simple creation tool with 3 params and no output schema, description covers core purpose, parameter semantics, and sibling differentiation. Could mention duplicate behavior, but overall sufficient.
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 coverage is 100%, but description adds value by explaining that server derives filename from title and that body is plain text, which may not be fully clear from type alone.
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?
Description clearly states it creates a new plain-text note, and distinguishes from append_to_note by noting that append_to_note allows specifying exact filename and can create on first write.
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?
Explicitly tells when to use this tool vs append_to_note, providing alternative for exact filename control. Also specifies plain text only.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
delete_folderDelete a folderADestructiveInspect
Delete a folder by its numeric id. Notes inside it are NOT deleted — they are moved out of the folder (un-filed).
| Name | Required | Description | Default |
|---|---|---|---|
| id | Yes | Numeric id of the folder to delete. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already mark destructiveHint=true, and the description adds critical behavior: notes inside are not deleted but moved out. This goes beyond the annotation and fully discloses the tool's effect.
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 two sentences, front-loading the action and then adding a critical behavioral detail. No redundant information.
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?
For a simple tool with one parameter and a destructive annotation, the description fully covers the purpose, input, and side effect. No output schema needed.
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?
There is only one parameter (id) with schema description coverage at 100%. The description does not add additional parameter-level meaning beyond what the schema already provides, so baseline score 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 clearly states 'Delete a folder by its numeric id' and distinguishes behavior from note deletion by specifying that notes are moved out, not deleted. This differentiates it from sibling tools like delete_note.
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 clear context for when to use the tool (to delete a folder by numeric id) and implicitly distinguishes from delete_note by describing the side effect on notes. However, it does not explicitly state when not to use it.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
delete_noteDelete a noteADestructiveInspect
Delete a note by its numeric id. Append-only notes cannot be deleted via the API. This cannot be undone through this server.
| Name | Required | Description | Default |
|---|---|---|---|
| id | Yes | Numeric id of the note to delete. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already indicate destructiveHint=true, but the description adds valuable context by stating that deletion cannot be undone and that append-only notes cannot be deleted via the API. This goes beyond the annotation.
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?
Two concise sentences that front-load the action and include important constraints. Every sentence is informative and there is no wasted text.
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?
For a simple tool with one parameter and no output schema, the description covers all necessary context: the operation, the parameter, constraints, and consequences. It is complete.
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 schema already provides a full description of the 'id' parameter (numeric id). The description only restates 'by its numeric id', adding no new meaning beyond the schema. With 100% schema coverage, baseline is 3.
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 clearly states the action 'Delete a note' and specifies the resource 'by its numeric id'. It also mentions a constraint (append-only notes cannot be deleted), which helps distinguish from sibling tools like delete_folder.
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 a clear context for when to use the tool (to permanently delete a note) and a condition (cannot delete append-only notes). However, it does not explicitly suggest alternatives when deletion is not appropriate, such as archiving.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
list_foldersList foldersARead-onlyInspect
List all folders in the account (id, name, timestamps), ordered alphabetically.
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=true. The description adds ordering behavior (alphabetically) but does not disclose potential performance or pagination. Adequate but not enriched beyond annotations.
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?
Single sentence, no wasted words. All information is front-loaded and efficient.
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?
No output schema exists, but the description covers return fields (id, name, timestamps) and ordering, making it complete enough for a simple list operation.
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?
There are zero parameters, so the description adds value by explaining the output fields and ordering. Baseline for 0 params is 4, and the description meets that.
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 clearly states 'list all folders' and specifies included fields (id, name, timestamps) and ordering (alphabetically). This distinguishes it from sibling tools like create_folder, delete_folder, etc.
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 does not provide when-to-use or when-not-to-use guidance. Usage is implied as a basic listing operation, but no mention of alternatives or context for use.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
list_notesList notesARead-onlyInspect
List the account's notes (most-recently-updated first by default) as summaries: id, filename, title, format, timestamps, and a body excerpt. Filter by folder or format. Both plain and rich notes are listed, but only plain notes can be created or edited through this server.
| Name | Required | Description | Default |
|---|---|---|---|
| limit | No | Max notes to return (default 50, max 200). | |
| offset | No | Pagination offset (default 0). | |
| format | No | Filter by note format. | |
| folder_id | No | Folder id to filter by, or "none" for notes in no folder. | |
| sort | No | Sort order (default "updated"). |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
The description is consistent with the readOnlyHint annotation (no contradiction). It adds behavioral context beyond annotations, such as default sort order (most-recently-updated first) and the fact that only plain notes are editable via this server, which informs the agent about tool capabilities.
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 concise with three sentences covering purpose, output details, and a limitation. It is front-loaded with the main action. However, it could be more structured (e.g., bullet points for included fields or filters) to improve readability, but it remains efficient.
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, the description explains the return value (summaries with specific fields). It covers filtering, default sorting, and the plain/rich note distinction. All 5 parameters are covered by schema descriptions. The description could mention pagination behavior (e.g., defaults) but is largely complete.
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%, so all parameters are documented in the schema. The description adds minimal extra meaning beyond the schema, e.g., stating that filtering is by folder or format, and default sort order is implied but already clear from schema defaults. 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 clearly states the action (list notes), the resource (account's notes), and the output format (summaries with specific fields). It also distinguishes from sibling tools by mentioning that only plain notes can be created/edited through this server, implying that for rich notes other tools are needed.
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 filtering options (folder/format) and a notable limitation about plain vs. rich notes, which helps with tool selection. However, it does not explicitly state when not to use this tool, e.g., for full note content (use read_note) or for creation/editing of rich notes.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
move_noteMove a note to a folderAInspect
Move a note (by numeric id) into a folder, or out of any folder. Pass a folder_id to file it there, or null to un-file it.
| Name | Required | Description | Default |
|---|---|---|---|
| id | Yes | Numeric id of the note to move. | |
| folder_id | Yes | Target folder id, or null to remove the note from its folder. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries the full burden. It discloses the two behavioral modes (file/un-file), but lacks details on side effects, error handling, or permissions. For a simple move operation, this is adequate but not rich.
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, well-structured sentence with no unnecessary words. It directly conveys the tool's purpose and usage without any fluff.
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?
For a two-parameter tool with no output schema, the description is complete. It explains both use cases and the role of each parameter. Minor missing details like error behavior are acceptable given the simplicity.
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 schema covers 100% of parameters with descriptions. The description adds value by clarifying the null case for folder_id ('un-file'). It doesn't repeat redundant information, providing a modest improvement over the schema.
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 clearly states the action (move a note) and the resource (note by numeric id), with two distinct modes (into a folder or out of any folder). It effectively distinguishes from sibling tools like append_to_note or create_note.
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 explicit guidance on how to use the tool: pass folder_id to file, null to un-file. While it doesn't discuss when not to use it versus alternatives, the context is clear given the sibling tools are different actions.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
read_noteRead a noteARead-onlyInspect
Read a single note in full (including its complete plain_body) by exact filename (e.g. "ai-sessions.txt") or numeric id. Provide exactly one of filename or id.
| Name | Required | Description | Default |
|---|---|---|---|
| filename | No | Exact filename of the note (preferred addressing). | |
| id | No | Numeric note id (e.g. from list_notes). |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already indicate readOnlyHint=true, so no mutation. The description adds that it returns the full plain_body, which is valuable beyond annotations. No contradictions.
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?
Two concise sentences with key information front-loaded. No wasted words. Efficient and clear.
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?
For a read tool with two optional parameters (one required), the description covers what is returned (complete plain_body) and how to identify the note. No output schema needed; description suffices.
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 coverage is 100% with descriptions. The description adds that exactly one parameter must be used and provides an example for filename, enhancing semantics beyond the schema.
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?
Clearly states it reads a single note (verb+resource) and specifies retrieval of complete plain_body. Distinguishes from siblings like list_notes (list) and update_note (modify) by focusing on read and exact identification.
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?
Explicitly instructs to provide exactly one of filename or id, which ensures correct invocation. While it doesn't explicitly state when not to use, the context of reading a specific note is clear from the description.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
rename_folderRename a folderBInspect
Rename an existing folder, addressed by its numeric id.
| Name | Required | Description | Default |
|---|---|---|---|
| id | Yes | Numeric id of the folder. | |
| name | Yes | New folder name. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description must fully disclose behavior. It states 'rename an existing folder' implying mutation, but does not mention permissions, side effects (e.g., impact on child folders), or return value. This is insufficient for an agent to fully understand the tool's behavior.
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 with 13 words, front-loading the action and resource. No extraneous information is present.
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?
With no output schema and no annotations, the description should cover success behavior, error conditions (e.g., folder not found, duplicate name), and constraints. It does not, leaving gaps for an agent to guess.
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 coverage is 100%, so the schema already documents both parameters. The description adds that the folder is addressed by a 'numeric id' and the name is a 'new folder name', but these provide no additional meaning beyond the schema definitions. Baseline score of 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 clearly states the verb 'Rename' and resource 'folder'. It is distinct from sibling tools like create_folder, delete_folder, and list_folders, as none of them perform a rename operation.
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 implies use when renaming a folder, but does not explicitly state when to use this tool versus alternatives or provide any exclusions. No alternative tools for renaming exist among siblings, but the lack of explicit guidance limits the score.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
update_noteUpdate a noteAInspect
Update a plain-text note's title, body, and/or folder, addressed by exact filename or numeric id. Only the fields you supply change; omitted fields are left untouched. Rich-format and append-only notes reject body/title edits. Provide exactly one of filename or id.
| Name | Required | Description | Default |
|---|---|---|---|
| filename | No | Exact filename of the note to update. | |
| id | No | Numeric id of the note to update. | |
| title | No | New title (omit to leave unchanged). | |
| body | No | New full plain-text body (replaces the existing body; omit to leave unchanged). | |
| folder_id | No | New folder id, or null to remove from its folder. Omit to leave unchanged. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations provided, so description carries full burden. Discloses partial update behavior, required identifier uniqueness, and type restrictions (rejects body/title on rich-format/append-only notes). Does not mention permissions, idempotency, or return value, but adds meaningful context beyond schema.
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?
Three sentences, each essential. First states action and identity. Second clarifies partial update semantics. Third adds restrictions and identifier rule. No wasted words.
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?
Tool has 5 parameters and no output schema. Description covers update behavior, restrictions, and identifier rules. Does not describe return value or error conditions, but overall provides enough context for correct invocation.
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 coverage is 100%, so baseline is 3. Description adds value: clarifies 'omit to leave unchanged' for body and title, explains folder_id behavior (omit or null to remove), and emphasizes mutual exclusivity of filename/id. This goes beyond the schema descriptions.
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?
Description uses specific verbs and objects: 'update a plain-text note's title, body, and/or folder'. It clearly distinguishes from sibling tools like 'append_to_note' (which appends) and 'create_note' (which creates), and the identification method (filename or id) is precise.
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?
Provides explicit guidance: 'Only the fields you supply change; omitted fields are left untouched.' Warns about restrictions on rich-format and append-only notes. Instructs to provide exactly one of filename or id. Does not explicitly contrast with similar tools but covers key use cases.
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.
11 tool updates
v1.0.0- First observed
append_to_note - First observed
create_folder - First observed
create_note - First observed
delete_folder - First observed
delete_note - First observed
list_folders - First observed
list_notes - First observed
move_note - First observed
read_note - First observed
rename_folder - First observed
update_note
TDQS
Scored across 11 tools
Each tool has a distinct purpose: create vs append for notes, CRUD for folders and notes are clearly separated. No two tools are ambiguous.
All tools follow a consistent verb_noun pattern with snake_case (e.g., create_note, delete_folder, list_notes). No deviations.
11 tools cover a complete CRUD surface for notes and folders, with additional operations like append and move. The count is well-scoped for the domain.
The tool set covers basic note and folder lifecycle. Minor gap: no explicit search or folder content retrieval, but list_notes with folder filtering mitigates this.
Maintenance
Related MCP Connectors
Google Keep-style notes app with an MCP server for AI agents to read/write notes.
An MCP server that used to create notes
Shared rooms and durable notes for agents over plain HTTP: rendezvous, hand-off, coordination.
Related MCP Servers
- AlicenseBqualityDmaintenanceA simple MCP server that recalls and saves memories from and to Apple Notes.212MIT
- AlicenseCqualityDmaintenanceA Model Context Protocol server that implements a simple notes system, allowing users to create, list, and summarize text notes.32 npmISC
- FlicenseNot gradedqualityDmaintenancePersonal note management server that enables creating, reading, updating, deleting, listing, and searching notes with support for titles, content, and tags.-
- AlicenseAqualityDmaintenanceComprehensive Apple Notes MCP server for local macOS note management.142,008 npmMIT