Agent-Native Calendar
Agent-Native Google Calendar - manage events, sync, and public booking
作者による説明(英語の原文)
Filesystem-based MCP server for Obsidian vaults — read, search, and edit notes, no app required.
この3つを1つのスコアにまとめることはしません。意見、測定、人気はそれぞれ別のものだからです。
このサーバーのやさしい解説はまだ書いていません。以下はレジストリから読み取った事実です。
使っているAIアプリを選んで、設定をコピーしてください。
どのアプリを使っていますか?
上でアプリを選んでください。選んだアプリを覚えておくので、次からはボタンに「…にインストール」と表示されます。
リンク先は作者自身のファイルです。私たちが置いたり再パッケージしたりしたものではありません。ファイルを開くと、Claude Desktopがインストールします。
ターミナルでこれを実行します
ブラウザがアプリを開いてよいか確認し、そのあとアプリが設定を表示して確認を求めます。キーの値は空欄のままなので、自分で入力してください。
ブラウザがアプリを開いてよいか確認し、そのあとアプリが設定を表示して確認を求めます。キーの値は空欄のままなので、自分で入力してください。
これはパソコンで動くサーバーですが、ChatGPTがつなげるのはインターネット上のサーバーだけです。ほかのアプリを選んでください。
選んだアプリは、この端末のCookieに保存されます。アカウントは不要です。
この設定は、作者のレジストリ登録情報から作成しています。READMEと違う場合は、READMEに従ってください。
パソコンで動くサーバーです。インストールすると、ツール一覧がAIアプリに表示されます。
誰でも見られる情報をチェックしており、コードは読んでいません。当てはまらない項目は数に入れていません。 · 2026年11月7日にチェック
レジストリ名は、リポジトリを所有するGitHubアカウント tylern91 で確認済みです
このリポジトリはまだGitHubから読み取っていません
このリポジトリはまだGitHubから読み取っていません
これはパソコンで動くため、インターネット上のエンドポイントはありません
パソコンで動き、代わりにローカルの設定を使います
パソコンで動くサーバーです。ツール一覧を読み取れるのは、インターネット上のエンドポイントがある場合だけです
レジストリでこのカテゴリにある有効なすべてのサーバーと比較しています。スターは、公開者がリポジトリの所有者である場合だけ数えます。
当てはまる基本チェック1項目のうち1項目に合格しました。コードは読んでいません。キーやトークンを追加する前に、サーバーがどんなアクセスを求めているかを確認し、必要な権限だけを持つキーを使ってください。
レジストリには必須のキーは載っていません。ただし、最初に使うときにサインインを求めるサーバーもあります。
あなたのパソコンで動きます。必要なときにAIアプリが起動し、データは作者のサーバーを通りません(サーバー自体がオンラインサービスを呼び出す場合を除きます)。
GitHubリポジトリの最終更新は–、最新バージョン(0.3.0)がレジストリに届いたのは2 か月前です。
Claude Desktop、Claude Code、Cursor、VS CodeなどのMCP対応アプリで使えます。パソコンにMCPBも必要です。
同じカテゴリには:Agent-Native Calendar, Excel MCP Server, MCP Server for Excel
同じカテゴリで、ほかの作者が作ったサーバー。スターの多い順。
カードの見方:★ GitHubスターi3つの柱:レビュー · チェック · 利用状況i更新=最新バージョンをレジストリに公開した日i
Agent-Native Google Calendar - manage events, sync, and public booking
Create and edit Excel files with AI: charts, PivotTables, formulas. No Excel needed.
Excel automation for AI - Sheets, Power Query, DAX, VBA, Tables, Ranges and more. Windows only.
作者のリポジトリから書かれたとおりにコピーしたものです。PopNx MCPは内容を確認・推奨していません。HTML、画像、スクリプトは取り除いています。リンクはこのサイトの外へ移動します。
A Go Model Context Protocol (MCP) server for Obsidian vaults. It gives AI agents and development tools direct filesystem access to your vault — no running Obsidian instance required.
#tags, aggregate vault-wide tag counts, add/remove tags--transport http in Configuration and SECURITY.md § HTTP transport| Tool | Description | Params |
|---|---|---|
read_note | Read a note's content and metadata | path (required), prettyPrint — response includes an etag |
write_note | Create or update a note | path, content (required), mode: overwrite/append/prepend, if_match (optional etag) |
list_directory | List files and subdirectories | path (empty = vault root), prettyPrint |
get_frontmatter | Read YAML frontmatter from a note | path (required), prettyPrint |
update_frontmatter | Set or remove frontmatter keys (format-preserving) | path (required), updates (JSON object), removeKeys (JSON array), if_match (optional etag) |
manage_tags | Add or remove a tag on a note | path, action: add/remove (required), tag (required), location: frontmatter/inline, if_match (optional etag) |
list_all_tags | Aggregate all tags across the vault with counts | prettyPrint |
get_backlinks | Find all notes that link to a target note | path (required), prettyPrint |
patch_note | Apply a heading-anchored patch to a note | path, heading, position: before/after/replace_body, content (all required), if_match (optional etag) |
delete_note | Move a note to .obsidian-mcp/trash (requires confirm); pass permanent: true to hard-delete instead | path, confirm (must match path exactly), permanent (optional, default false), if_match (optional etag) |
move_note | Move or rename a note within the vault (requires confirm); rewrites unambiguous inbound links by default | src, dst, confirm (must match src exactly), updateLinks (bool, default true), dryRun (bool, default false), if_match (optional etag; ignored when dryRun is true) |
search_notes | BM25 full-text search with ranked results and match snippets | query (required), limit, maxMatchesPerFile, caseSensitive, searchContent, searchFrontmatter, pathScope, prettyPrint |
search_regex | Search using RE2 regex or glob pattern | pattern (required), isGlob, scope, limit, maxMatchesPerFile, prettyPrint |
read_multiple_notes | Read the content of multiple notes in a single request | paths (required, JSON array), summary (bool, default false), headChars (int, default 200) — each entry includes an etag |
get_notes_info | Get metadata for multiple notes without reading full content | paths (required, JSON array) — each entry includes an etag |
get_vault_stats | Get aggregate statistics about the entire vault | includeTokenCounts (bool, default false) |
get_periodic_note | Get a periodic note (daily, weekly, monthly, quarterly, or yearly) | granularity (required, enum: daily/weekly/monthly/quarterly/yearly), offset (int, default 0), createIfMissing (bool, default false) |
get_recent_periodic_notes | Get the N most recent periodic notes | granularity (required, enum: daily/weekly/monthly/quarterly/yearly), count (int, default 5), summary (bool, default true) |
get_recent_changes | List notes most recently modified in the vault | limit (int, default 10), since (string, ISO-8601), summary (bool, default true) |
audit_notes | Audit the vault for hygiene issues: orphans, dangling links, untagged notes, duplicate titles | classes (JSON array: orphans/dangling-links/untagged/duplicate-titles, default all), limit (int per class, default 20) |
get_note_outline | Return a note's heading tree (level, text, line number) without its body | path (required), prettyPrint |
read_note_lines | Read a bounded range of lines from a note | path, startLine (required), lineCount (int, default 200, capped at 2000) |
rename_tag | Rename a tag vault-wide, across frontmatter and inline occurrences | oldTag, newTag (both required) |
replace_in_note | Scoped search-and-replace within a single note, literal or regex | path, pattern, replacement (all required), isRegex (bool, default false), maxOccurrences (int, default 0 = unbounded) |
search_notes, search_regex, list_directory, and get_recent_changes results also include an obsidian://open deepLink field per note, built from --vault-name (see Configuration below).
`patch_note` semantics: position controls where content is inserted relative to the heading:
before — inserted immediately before the heading lineafter — inserted after the heading's body (before the next same-level or higher heading)replace_body — replaces everything between the heading line and the next same-level heading`search_notes` parameters:
| Parameter | Type | Default | Description |
|---|---|---|---|
query | string | required | Search query. Multi-term queries use OR logic; the full phrase contributes a bonus score. |
limit | integer | 20 | Maximum number of results |
maxMatchesPerFile | integer | 3 | Maximum match snippets per result |
caseSensitive | boolean | false | Case-sensitive matching |
searchContent | boolean | true | Include note body in scoring |
searchFrontmatter | boolean | true | Include frontmatter values in scoring |
pathScope | string | — | Glob pattern to restrict search scope (e.g. Daily Notes/*) |
prettyPrint | boolean | false | Format JSON with indentation |
Returns: { query, results: [{ path, score, matchCount, matches: [{line, snippet, term}], tokenCount, reason }], total }
`search_regex` parameters:
| Parameter | Type | Default | Description |
|---|---|---|---|
pattern | string | required | RE2 regex or glob pattern |
isGlob | boolean | false | Treat pattern as a filepath glob (** matches across dirs) |
scope | string | content | path, content, or both |
limit | integer | 20 | Maximum number of results |
maxMatchesPerFile | integer | 5 | Maximum match snippets per result |
prettyPrint | boolean | false | Format JSON with indentation |
Returns: { pattern, scope, results: [{ path, matches: [{line, snippet}] }], total }
Batch tools (`read_multiple_notes`, `get_notes_info`): The paths parameter is a JSON array string — e.g. '["Notes/foo.md","Notes/bar.md"]'. summary:true returns headOf (first N runes from headChars, default 200) instead of full content, which is useful for large notes to stay within context limits. Both tools enforce --max-batch (default 10); requests with more paths are silently truncated and the response includes "truncated": true.
Optimistic concurrency (`if_match` / `etag`): read_note, read_multiple_notes, and get_notes_info return a SHA-256 etag of the note's content. Pass that value as if_match on write_note, patch_note, update_frontmatter, manage_tags, delete_note, or move_note to make the write conditional — if the note has changed since you read it, the call fails with a REVISION_CONFLICT error instead of silently overwriting someone else's edit. if_match is optional everywhere; omitting it writes unconditionally, as before. Two edge cases: passing if_match for a note that doesn't exist yet is always a conflict (it never creates the note), and move_note's dryRun:true preview does not enforce if_match.
Periodic notes (`get_periodic_note`, `get_recent_periodic_notes`): Configuration (folder and date format per granularity) is read from .obsidian/plugins/periodic-notes/data.json inside the vault. If that file is missing, built-in defaults are used: daily notes use YYYY-MM-DD in Daily Notes/, weekly notes use gggg-[W]ww in Weekly Notes/, and so on. offset=0 resolves to the current period, offset=-1 to the previous period (yesterday, last week, etc.), and offset=+1 to the next period. createIfMissing=true creates an empty note at the resolved path if it does not already exist.
`get_vault_stats`: Returns noteCount, totalBytes, totalLinks, totalTags, topTags (top 20 by count), oldestNote, newestNote, and vaultRoot. Setting includeTokenCounts:true runs token counting across every note — this is expensive for large vaults and is disabled by default.
`audit_notes` classes:
orphans — notes that have no tags AND no incoming wikilinks or markdown links (completely isolated notes)dangling-links — notes containing links to vault paths that do not exist (broken references)untagged — notes with no frontmatter tags and no inline #tagsduplicate-titles — multiple notes sharing the same filename stem, which causes wikilink ambiguityEach class result is capped at limit entries (default 20). When results are truncated, the response includes "truncated": true.
Prompts are server-defined conversation starters that the host (Claude Code, Claude Desktop) exposes in its UI. Each prompt pulls live vault data and constructs a ready-to-use message for the LLM.
| Prompt | Description | Arguments |
|---|---|---|
summarize_note | Summarize a note: 3 key bullets, entities, open questions | path (required) |
daily_note_review | Review a daily note: carryover TODOs, link suggestions, missing tags | offset (int, default 0) |
weekly_review | Weekly retrospective from the last 7 daily notes | weekOffset (int, default 0) |
find_related | Suggest related notes worth linking, grouped by relationship type | path (required) |
vault_health_check | Audit orphans, dangling links, untagged notes, duplicate titles; prioritize fixes | *(none)* |
Prompts are invoked from the host's prompt picker (e.g. / in Claude Code). They never modify the vault.
Resources are read-only vault data that the host can attach directly to a conversation context window — no explicit tool call required.
| Resource / Template | URI | MIME | Description |
|---|
| Vault statistics | `obsid
冒頭だけを表示しています。続きはリポジトリで読めます