Agent-Native Calendar
Agent-Native Google Calendar - manage events, sync, and public booking
作者提供的说明(英文原文)
Serve a folder of Markdown notes as an MCP server: hybrid search, reading, and sourced answers.
这三项永远不会合并成一个分数:意见、测量和人气是不同的东西。
我们还没有为它写通俗的介绍。下面是我们从注册中心读取到的事实。
选择你使用的 AI 应用,然后复制设置。
你需要
你用的是哪个应用?
在上方选择你的应用。我们会记住它,下次按钮会显示“安装到 …”。
适用于网页版、桌面版和手机版 Claude:
https://trip2g.com/_system/mcp在终端中运行这条命令
claude mcp add --transport http trip2g https://trip2g.com/_system/mcp粘贴到项目中的 .cursor/mcp.json,或 ~/.cursor/mcp.json
{
"mcpServers": {
"trip2g": {
"url": "https://trip2g.com/_system/mcp"
}
}
}浏览器会先询问是否打开应用,然后应用会显示设置并请你确认。密钥的值会留空,由你自己填写。
粘贴到项目中的 .vscode/mcp.json
{
"servers": {
"trip2g": {
"type": "http",
"url": "https://trip2g.com/_system/mcp"
}
}
}浏览器会先询问是否打开应用,然后应用会显示设置并请你确认。密钥的值会留空,由你自己填写。
ChatGPT 只能连接互联网上的服务器:
https://trip2g.com/_system/mcp菜单名称可能因套餐和版本不同而略有差异。
你的选择通过 Cookie 保存在这台设备上,无需账户。
这些设置是根据作者在注册中心的条目生成的。如果 README 的写法不同,请以 README 为准。
我们还没有读取这个服务器的工具列表;我们会轮流检查各个端点。
我们检查的是任何人都能看到的信息;我们没有阅读代码。不适用的检查项不计入总数。 · 检查于 2026年11月6日
注册名称已通过 GitHub 账户 trip2g 验证,该账户拥有此仓库
我们还没有从 GitHub 读取这个仓库
我们还没有从 GitHub 读取这个仓库
尚未检查;我们会轮流检查各个端点
尚未检查;我们会轮流检查各个端点
尚未检查;我们会在检查端点时读取工具列表
与注册中心里这个分类中所有活跃的服务器比较。只有当发布者拥有该仓库时,星标数才计入。
它在 1 项适用的基础检查中通过了 1 项。我们没有阅读代码。在添加密钥或令牌之前,请先看看这个服务器要求哪些权限,并使用只具备所需权限的密钥。
注册中心没有列出必需的密钥,不过有些服务器会在首次使用时要求你登录。
它在作者的云端运行。通过互联网连接,无需安装,但你发送的内容会经过作者的服务器。
GitHub 仓库最后更新于–,最新版本(1.0.0)于4个月前进入注册中心。
支持 MCP 的应用,例如 Claude Desktop、Claude Code、Cursor 和 VS Code。它通过 URL 连接,所以接受远程 MCP 服务器的应用也可以使用,例如开启开发者模式的 ChatGPT。
同一分类中有:Agent-Native Calendar, Excel MCP Server, MCP Server for Excel
同一分类中其他作者的服务器,按星标数排序。
如何看卡片:★ GitHub 星标i三大支柱:评价 · 检查 · 使用情况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、图片和脚本已被移除。链接会离开本站。
Publish your Obsidian vault as a website. Self-hosted MCP memory for AI agents.
Write in Obsidian, press Sync, your notes are live. The same self-hosted hub serves readers a website and serves agents an MCP endpoint, publishes to Telegram, and gates paid content. Under the hood it is a Markdown Operating System: every note is a file, and one note is both a web page for a human and a tool call for an agent.
Why trip2g
search / note_html calls from any MCP client. No export step, no copy of your knowledge locked in a vector store you can't read.git clone.See it work in 30 seconds. Add the public knowledge hub to any MCP client and ask it a question. It searches all connected bases and answers with sources:
{
"mcpServers": { "trip2g": { "url": "https://trip2g.com/_system/mcp" } } }
Run your own hub:
git clone https://github.com/trip2g/trip2g && cd trip2g/quickstart
docker compose up
Open http://localhost:8081, sign in with owner@example.com and code 111111, and download the preconfigured Obsidian vault from the home page. One container, files on local disk, full-text search — no other services needed.
Prefer no terminal? Get a free cloud instance. All the options (single binary, Docker Compose behind TLS, fly.io) are in the self-host guide.
Docs · Getting started · MCP tools · Self-host · Contributing
Unix made everything a file. trip2g makes everything a note.
One global namespace, path-addressed, shared by humans and agents. A note is a markdown file: the frontmatter is its metadata, the body is its content. The same note is served as a web page (the display server) and over MCP (the agent's syscall surface), and every edit is snapshotted into note_versions and mirrored to git. So the history is a readable diff, not a binary blob.
human A human B human C
│ │ │ ▼ ▼ ▼ agent A agent B agent C │ │ │ ▼ ▼ ▼ ┌────────┐ MCP ┌────────┐ MCP ┌────────┐ │ hub A │ ◄───► │ hub B │ ◄───► │ hub C │ └────────┘ └────────┘ └────────┘ ▲ ▲ ▲ └─── humans browse · agents query ──┘
The same hub serves the human (a website with subscriptions, RSS, Telegram) and the agent (MCP). Your data stays in plain markdown you can move out any time.
trip2g borrows the operating-system vocabulary because the primitives line up. Each row is tagged by how real it is: shipped is running code on main, branch is running code on feat/agent-runtime, planned is a design doc.
| OS concept | trip2g primitive | Status |
|---|---|---|
| Filesystem | one path-addressed note namespace, humans and agents share it | shipped |
| Files | notes: markdown frontmatter (metadata) + body (content) | shipped |
| Overlay filesystem | frontmatter patches (Jsonnet) override notes without touching the source | shipped |
| Snapshots | note_versions + DB-canonical git mirror (gitapi) | shipped |
| Filesystem over git | git clone/pull/push the vault over Smart HTTP (/_system/git) | shipped |
| Syscalls | MCP tools: search, note_html, similar, federated_* | shipped |
| Network stack | federation: fan one query out to peer hubs | shipped |
| Virtual hosts | per-domain routing via route/routes frontmatter | shipped |
| Scheduler | cron webhooks (next_run_at) + goqite worker pools | shipped |
| Process dispatch | webhook delivery: note create/update/remove → POST | shipped |
| IPC | notes as an event bus: one agent's write fires the next | shipped |
| Display server | website rendering: default + Jet templates, mermaid, datachart | shipped |
| Page cache | anonymous rendered-page cache, version-keyed | shipped |
| Output target | publish notes to a Telegram channel, links preserved | shipped |
| Standard input | forms in frontmatter, submissions stored per note | shipped |
| Permissions (users) | subgraphs + subscription ACLs, admins, API keys | shipped |
| Auth providers | email magic-link, Google/GitHub OAuth, OIDC SSO | shipped |
| Permissions (agents) | per-webhook read_patterns/write_patterns in a scoped token | shipped |
| Credential store | encrypted secrets / federation_secrets (AES-256-GCM) | shipped |
| Capability ticket | HAT: signed short-TTL token, ae=true admin elevation | shipped |
| Control surface | kanban board note (layout: kanban) | shipped (layout), branch (agent wiring) |
| Kernel config | feature flags, validated at boot (panics on missing dep) | shipped |
| Process executor | internal LLM run loop (agentruntime), tool allowlist + caps | branch |
| Package manager | role-as-note: drop a note, fleet registers the agent | branch |
| Resource limits | non-overridable token + step caps per run | branch |
Built into every hub. An agent never touches the database directly. It calls a small set of tools over MCP, and access is scoped to the caller's subscription.
| Tool | Purpose |
|---|---|
search | Hybrid full-text + semantic search |
note_html | Read a note (or a section) by id, path, or match |
similar | Notes similar to a given note |
federated_search / federated_similar / federated_note_html | Same, fanned out to peer hubs |
instructions | Author-defined prompt for the agent |
Custom tools can be defined in note frontmatter (mcp_method:).
graph LR
O[Obsidian vault] --> H[your hub] T[Telegram] --> H H <-->|MCP federation| H2[peer hub] H2 --> B[their bases] H -->|/_system/mcp| A[agent] H2 -->|/_system/mcp| A
Peer hubs with trusted people or orgs. Each hub controls access per base. One agent question reaches the union of all connected knowledge. Loops are bounded the way IP packets are: each hub enforces max_depth against a per-hop counter (the X-MCP-Federation-Depth header), and every call carries a short-expiry, HMAC-signed token.
Each hub is itself a Markdown OS, so the network is a mesh between operating systems, the way the internet is a network between computers. The rows below are common shapes, not the only ones. The protocol does not assume a topology, so you can build any of them.
| Topology | Setup | Result |
|---|---|---|
| Solo | One hub, many bases | All your notes, books, courses in one query |
| Friends | Each person runs a hub, hubs peer | Union of everyone's knowledge |
| Company | Central hub + per-employee hubs | Tribal knowledge and docs, queryable |
| B2B | Two star topologies, one bridge | Shared knowledge without merging systems |
The kernel-side mechanism that runs an agent. Shipped on main.
max_depth stops recursion.0 9 * * *). A next_run_at column plus a per-minute system cron drive it, and goqite worker pools give per-queue concurrency and priority. Sync or async, with optional instruction context.The agent itself can live anywhere. These webhooks just deliver the event and accept note writes back.
*In development on
feat/agent-runtime, not yet onmain.*
The core idea: a note edit spawns a scoped, server-side agent run. Unlike a local editor or a static builder, the agent runs on the hub, scoped to the note's glob patterns, not on your laptop.
An agent is a note. Its frontmatter is the config: model, tools, read_patterns/write_patterns, trigger_on, for_each, max_depth, timeout_seconds. Its body is the instruction, a Jet template that can reference the changed note(s). A fleet daemon watches an agents folder, parses each role note, and registers it as a change webhook pointed back at itself. Drop a note to install an agent, remove the note to uninstall it.
graph LR
E[note edited] --> W[change webhook fires] W --> F[fleet /deliver] F --> R[agentruntime loop] R -->|search / read_note| KB[(knowledge base)] R -->|write_note / patch_note| KB KB -.re-trigger.-> E
When a watched note changes, trip2g fires the webhook and the fleet runs a scoped loop (agentruntime): the model gets the instruction plus in-scope context and calls search / read_note / write_note / patch_note. Reads and writes are enforced against the role's glob patterns, a non-overridable token-and-step cap limits the run, and max_depth breaks re-trigger loops. trip2g stays a plain event source. The instruction, scope, and triggers all live in the note.
The plumbing this rides on (change/cron webhooks, scoped tokens, delivery jobs) is shipped on main. The in-note LLM executor (agentruntime) and the fleet reconciler (internal/fleet, cmd/fleet) are what feat/agent-runtime adds.
A board is a note with layout: kanban, and cards are lines like - ship the docs @status:doing @assigned:bob. Editing a card is a note edit, so the same trigger that drives any agent can drive a triage agent that reads the board and patch_notes cards in place. The note is both how a human directs work and the agent's input and output.
The kanban layout (docs/_layouts/kanban.html) and the standalone kanban_template ship on main. Wiring a board to the fleet is part of feat/agent-runtime.
Two paths, pick one per knowledge base.
A. Default template (no code, frontmatter only). Compose pages from widgets and content blocks:
---
header: "[[Navigation]]" left_sidebar: [TOC, inlinks] content: [selfcontent, magazine] magazine_include_files: "blog/**/*.md" footer: "[[Footer]]"
Rendered through quicktemplate. Notes can also render as HTML, JSON, or RSS via content_type frontmatter.
B. [Custom Jet templates](https://trip2g.com/en/user/templates) (full control). Drop your
只显示了开头部分;其余内容请在仓库中阅读