search_history
Search the history
Reads only
Description
What the model reads, word for word:
Searches past versions of the notes for a word or phrase.
Parameters
| Name | Type | Required | Description |
|---|---|---|---|
text |
string |
Commits that added or removed this text, for example “34 Stores at Acme”. Case is ignored; otherwise exactly as written, one line. Matches ^[^\u0000-\u001f\u007f-\u009f]+$. At most 200 characters. |
|
author |
string |
Commits by this author: part of the name or e-mail address Git has, for example “acme”. Case is ignored. Matches ^[^\u0000-\u001f\u007f-\u009f]+$. At most 100 characters. |
|
since |
string |
Commits from this moment on: a day, 2026-09-24 (from its start), or a day and a time, 2026-09-24T18:00, in the local time of the machine the server runs on. Matches ^(\d{4}-\d{2}-\d{2})(?:T(\d{2}):(\d{2}))?$. |
|
until |
string |
Commits up to this moment, written like since; a day counts to its end. Matches ^(\d{4}-\d{2}-\d{2})(?:T(\d{2}):(\d{2}))?$. |
|
path |
string |
Only commits that changed this folder or note, relative to the vault root, for example “projects/apollo”. Leave it out for the whole vault. | |
limit |
integer |
How many commits to list on this page. At least 1. At most 50. Default 20. |
|
offset |
integer |
How many commits to skip, newest first. An answer with more after it names the next offset. Default 0. |
|
repo |
"handbook" | "projects" |
The repository this call works in. One of the repositories the person can read; the values above are Acme’s. |
Result
As structuredContent and, the same, as a text block.
| Field | Type | Description |
|---|---|---|
commits |
object[] |
|
commits[].commit |
string |
The commit hash; give it to note_history as at, with one of the paths, to see a note as it was then. |
commits[].date |
string |
When it was committed, ISO 8601. |
commits[].author |
string |
Who Git has as its author. |
commits[].subject |
string |
The first line of its message: for the server’s own commits, what changed and which tool did it. |
commits[].files |
object[] |
|
commits[].files_total |
number |
How many files it changed in all, those not listed included. |
offset |
number |
How many commits were skipped before this page. |
hasMore |
boolean |
True when older commits follow after this page. |
note |
string |
|
repo |
string |
As listed
The entry in tools/list, captured from the service for Acme’s two repositories.
{
"name": "search_history",
"title": "Search the history",
"description": "Searches past versions of the notes for a word or phrase.",
"inputSchema": {
"type": "object",
"$schema": "https://json-schema.org/draft/2020-12/schema",
"properties": {
"text": {
"description": "Commits that added or removed this text, for example \"34 Stores at Acme\". Case is ignored; otherwise exactly as written, one line.",
"type": "string",
"minLength": 1,
"maxLength": 200,
"pattern": "^[^\\u0000-\\u001f\\u007f-\\u009f]+$"
},
"author": {
"description": "Commits by this author: part of the name or e-mail address Git has, for example \"acme\". Case is ignored.",
"type": "string",
"minLength": 1,
"maxLength": 100,
"pattern": "^[^\\u0000-\\u001f\\u007f-\\u009f]+$"
},
"since": {
"description": "Commits from this moment on: a day, 2026-09-24 (from its start), or a day and a time, 2026-09-24T18:00, in the local time of the machine the server runs on.",
"type": "string",
"pattern": "^(\\d{4}-\\d{2}-\\d{2})(?:T(\\d{2}):(\\d{2}))?$"
},
"until": {
"description": "Commits up to this moment, written like since; a day counts to its end.",
"type": "string",
"pattern": "^(\\d{4}-\\d{2}-\\d{2})(?:T(\\d{2}):(\\d{2}))?$"
},
"path": {
"description": "Only commits that changed this folder or note, relative to the vault root, for example \"projects/apollo\". Leave it out for the whole vault.",
"type": "string"
},
"limit": {
"default": 20,
"description": "How many commits to list on this page.",
"type": "integer",
"minimum": 1,
"maximum": 50
},
"offset": {
"default": 0,
"description": "How many commits to skip, newest first. An answer with more after it names the next offset.",
"type": "integer",
"minimum": 0,
"maximum": 9007199254740991
},
"repo": {
"type": "string",
"description": "The repository this call works in.",
"anyOf": [
{
"const": "handbook",
"description": "How Acme works: onboarding, processes and policies."
},
{
"const": "projects",
"description": "One folder per project: plans, decisions and meeting notes."
}
]
}
}
},
"annotations": {
"readOnlyHint": true,
"openWorldHint": false
},
"outputSchema": {
"$schema": "https://json-schema.org/draft/2020-12/schema",
"type": "object",
"properties": {
"commits": {
"type": "array",
"items": {
"type": "object",
"properties": {
"commit": {
"type": "string",
"description": "The commit hash; give it to note_history as at, with one of the paths, to see a note as it was then."
},
"date": {
"type": "string",
"description": "When it was committed, ISO 8601."
},
"author": {
"type": "string",
"description": "Who Git has as its author."
},
"subject": {
"type": "string",
"description": "The first line of its message: for the server's own commits, what changed and which tool did it."
},
"files": {
"type": "array",
"items": {
"type": "object",
"properties": {
"path": {
"type": "string",
"description": "The file, relative to the vault root, as it was called after the commit."
},
"added": {
"type": "number"
},
"removed": {
"type": "number"
},
"text": {
"type": "string",
"enum": [
"added",
"removed"
]
},
"repo": {
"type": "string"
}
},
"required": [
"path"
],
"additionalProperties": false
}
},
"files_total": {
"type": "number",
"description": "How many files it changed in all, those not listed included."
}
},
"required": [
"commit",
"date",
"author",
"subject",
"files",
"files_total"
],
"additionalProperties": false
}
},
"offset": {
"type": "number",
"description": "How many commits were skipped before this page."
},
"hasMore": {
"type": "boolean",
"description": "True when older commits follow after this page."
},
"note": {
"type": "string"
},
"repo": {
"type": "string"
}
},
"required": [
"commits",
"offset",
"hasMore"
],
"additionalProperties": false
}
}