Time Ledger MCP
Click on "Deploy Server".
Wait a few minutes for the server to deploy. Once ready, it will show a "Started" state.
In the chat, type
@followed by the MCP server name and your instructions, e.g., "@Time Ledger MCPshow examples/example.json and open it in the browser"
That's it! The server will respond to your query, and you can continue using it as needed.
Here is a step-by-step guide with screenshots.
Time Ledger MCP
Time Ledger is a Model Context Protocol (MCP) server that displays a ledger as a numeric timeline with tracks and overlapping blocks. Move the cursor across the timeline to inspect matching block details.
The server keeps only the latest ledger in memory. It does not write ledger data to disk, and the cache is cleared when the server exits.
Requirements
Node.js 18 or newer
An MCP-compatible client
Related MCP server: @sflens/mcp
Install
npm installAdd the server to an MCP client. For a global VS Code installation, add it to the user-level mcp.json; use an absolute path to this repository:
{
"servers": {
"time-ledger": {
"type": "stdio",
"command": "node",
"args": ["C:/path/to/time-ledger-mcp/src/server.js"]
}
}
}VS Code manages the stdio process. It starts the server when needed and stops it when the client closes.
Tools
Tool | Purpose |
| Load a ledger, replace the in-memory cache, and return the local page URL. Accepts an object, a JSON file path, or JSON text. |
| Open the local page in the system browser. |
| Return the authoritative data format and display rules. English is the default; pass |
Use the help tool before creating or transforming ledger JSON. It is the canonical format reference.
Example prompt:
Use the
time-ledgerMCPhelptool to learn the current ledger format. Then createledgers/daily-ledger.jsonin this workspace, following the returned rules, and load it withtime-ledger.show.
When show receives a file path, relative paths are resolved from the server process working directory. Use an absolute path if the client starts the server from an unknown directory.
Local development
npm test
npm run serve
npm run serve -- examples/example.jsonnpm test checks the MCP tools, both help languages, file and object loading, validation errors, the page, and the ledger API. npm run serve previews the example ledger without an MCP client; press Ctrl+C to stop it.
The page server listens on 127.0.0.1, starts at port 7317, and tries up to 20 consecutive ports. Set LEDGER_PORT to choose another starting port.
License
This project is licensed under the Apache License, Version 2.0. See LICENSE.
Available Tools
3 toolshelpFormat referenceB
Return the complete ledger JSON format, axis rules, and display behavior. Pass language: zh for the Chinese version.
| Name | Required | Description | Default |
|---|---|---|---|
| language | No | Help language; defaults to English. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries the behavioral-disclosure burden. It implies a read-only reference return and lists the content categories, but it does not explicitly confirm that the operation has no side effects or describe the response structure.
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 wasted language. The primary purpose is front-loaded, and the language option follows as a secondary usage detail.
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 help/reference tool with one optional parameter and no output schema, the description gives enough context to invoke it correctly. The main remaining gap is the absence of an explicit read-only/no-side-effect statement.
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 description coverage is 100%, and the single parameter is already fully documented with an enum. The description reinforces that language: zh selects Chinese, but it adds little beyond what the schema already states.
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 a specific verb and resource: it returns the complete ledger JSON format, axis rules, and display behavior. That is more specific than the tool title or name alone. However, it does not explicitly differentiate this reference tool from the sibling tools show and open.
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 explains how to request Chinese output but gives no guidance on when to use this tool instead of show or open. There are no stated exclusions, prerequisites, or alternative-selection criteria.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
openOpen pageA
Open the local ledger page in the system browser. The page polls for the latest show result.
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
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 does disclose useful behavior beyond the name — a real browser is launched and the page self-updates by polling the latest show result — but it omits whether the call blocks, what it returns (URL? handle?), and what happens if no browser is available.
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 short sentences, action stated first, with the polling detail front-loaded as the one behavior an agent needs to know. No filler.
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 zero-parameter, no-output-schema utility the description is close to sufficient, but with no annotations it should still note whether the call is side-effecting only (launching a browser) and whether it returns anything an agent can act on.
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 takes zero parameters, so the baseline is 4; there is nothing for the description to disambiguate and it correctly says nothing about inputs.
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?
States a specific verb (open) plus resource (the local ledger page) and where it opens (the system browser). It is distinguishable from `show`/`help` only indirectly, via the mention that the page polls for the latest *show* result, so sibling differentiation is implied rather than explicit.
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?
Usage is implied: reach for this when you want the live-updating view in a browser rather than terminal output. However, it never explicitly says when to prefer this over the sibling `show` tool, nor any precondition such as a running local ledger server.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
showLoad ledgerA
Load a ledger and replace the in-memory cache. Data is never written to disk. ledger may be an object, a JSON file path, or JSON text; relative paths use the server process working directory.
| Name | Required | Description | Default |
|---|---|---|---|
| ledger | Yes | A ledger object, JSON file path, or JSON text. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With zero annotations the description carries the whole burden, and it discloses the key traits: it replaces the in-memory cache (state-destroying), never writes to disk, and resolves relative paths against the server process working directory. It stops short of stating what happens to the existing cache on a failed load, or what the call returns.
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 tight sentences, front-loaded with the action and its side effect, then the accepted input forms. Every clause contributes information and nothing is padded.
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 one-parameter tool with no annotations and no output schema, the description covers the operation, its state impact, its persistence profile, and input resolution. The notable remaining gap is error behavior when the ledger is invalid, since a failure mode matters when the cache is being replaced.
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 documents the accepted forms at 100% coverage, so the description's restatement of 'object, JSON file path, or JSON text' is redundant. It still earns above baseline by adding genuinely new semantics: relative paths resolve against the server process working directory.
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 states a specific verb and resource ('Load a ledger') plus the side effect ('replace the in-memory cache'), which is far clearer than the ambiguous name 'show'. It never mentions the sibling 'open', so an agent cannot tell from the text alone which of the two to pick.
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?
There is no explicit guidance on when to use this versus 'open' or 'help', and no exclusion conditions. The only implied usage cue is the note that it replaces the cache, which hints at a heavier operation but never states a decision rule.
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.
3 tool updates
v1.0.0- First observed
help - First observed
open - First observed
show
TDQS
Scored across 3 tools
The three tools have distinguishable purposes: show loads ledger data into memory, open launches a browser view, and help returns format documentation. show and open are adjacent (both surface ledger content) and could momentarily be confused, but the descriptions make the boundary clear enough.
All three names are single lowercase verbs (show, open, help) following a consistent pattern with no camelCase/snake_case mixing. They deviate from a verb_noun convention and are generic verbs that only make sense in context, but they are internally consistent.
Three tools is small but each earns its place for what is essentially a ledger viewer: load, render, and document. It sits at the low end of the comfortable range without obviously missing a sibling tool within its stated display-only scope.
The surface covers only reading and rendering a ledger; there is no way to add, update, delete, or query time entries, nor to compute totals or filter by date range. For a 'Time Ledger' domain this leaves the core authoring and querying lifecycle entirely to external editing, which will cause agent dead ends.
Maintenance
Related MCP Connectors
Read your Golem fleet's ledger from any MCP client: agents' sessions, live activity, signed record.
Render, verify, describe, and safely edit Mermaid diagrams through MCP.
Log decisions with expectations, add evidence, and track metrics in Ledger.
Create, validate, edit, export (markdown/svg/png/mermaid), and search JSON Canvas files.
Related MCP Servers
- AlicenseNot gradedqualityCmaintenanceProvides a local, read-oriented MCP server for the MASA protocol, enabling offline validation, inspection, lineage tracing, public-export audit, and processing-request planning for sound-matter records.MIT
- AlicenseNot gradedqualityBmaintenanceProvides local, read-only Salesforce debug log analysis via MCP, including listing, searching, summarizing, analyzing, comparing logs, generating reproduction checklists, and exporting incident bundles.MIT
- AlicenseNot gradedqualityCmaintenanceEnables provenance capture and replay verification for scientific MCP tool calls, using a signed hash-chained ledger and data-source release resolution.MIT
- AlicenseBqualityCmaintenanceEnables users to explore a local repository’s commit history through read-only MCP tools, including branch lanes, merge edges, branch selection, search highlighting, commit metadata, file statistics, and bounded patches.2MIT