
Novacal Mcp Server
io.github.ste7由 GitHub 账号 ste7 发布v0.1.0更新于 Oct 25, 2026
Manage Novacal event types, availability, and bookings.
概览
远程 Novacal MCP 服务器,让 AI 助手列出活动类型、查询可用时间,并预订、改期或取消会议。
- 可以做什么
- 列出和获取活动类型,可按个人或团队范围筛选,并创建新的活动类型(名称、slug、时长、颜色等)。按日期范围和时区查询某活动类型的空闲时段。列出账户中的活动。预订新活动,可填写开始、结束、时区、地点和表单答案。改期或取消未来的活动,取消时可附原因。
- 适用场景
- 适合在 Novacal 中管理日程、希望助手直接回答可用时间、推荐时段,或创建、调整、取消会议而无需打开 Novacal 界面的场景。
- 运行要求
- 远程 Streamable HTTP 端点 mcp.novacal.io/mcp,需作为 HTTP MCP 服务器或自定义连接器添加。首次连接需 OAuth 登录并粘贴 Novacal API 密钥,服务器会向账户验证该密钥。托管服务无需本地运行环境。
安装
在 SourceWeft 中
- 打开 控制台中的 Novacal Mcp Server,将其添加到工作区。
- 连接 所需的 凭据。它们会被私密存储,绝不会在公开页面上展示。
- 为需要使用其工具的对话启用该服务。
Web executable,通过 Streamable HTTP。 远程服务在工作区中配置后即可从网页运行时运行。
交给智能体安装
把这段提示词粘贴到 Claude Code、Codex、Cursor 等智能体,或 SourceWeft 对话中。智能体会读取该服务器的安装指南,先向你展示发布者、端点和登录方式,经你同意后再把它添加到你的客户端。密钥不会写进任何命令。
阅读 https://sourceweft.com/mcp/io.github.ste7%2Fnovacal-mcp-server/install.md,并按其中说明把这个 MCP 服务器接入我的客户端。修改任何配置之前,先告诉我它的发布者、端点和登录方式,等我确认。不要把 API 密钥写进命令或我会提交的文件;问我密钥应从哪里获取。其他 MCP 客户端
把它添加到你客户端的 mcpServers 配置中。 客户端会在首次连接时完成 OAuth 登录。
{
"mcpServers": {
"novacal": {
"type": "http",
"url": "https://mcp.novacal.io/mcp"
}
}
}README
[CI status] [Transport: Streamable HTTP] [Tools: 8] [Deploys to Cloudflare Workers] [Last commit]
A remote MCP server for Novacal. It gives your AI client eight tools to read your event types, check availability, and book, reschedule, or cancel meetings.
It runs as a single Cloudflare Worker and speaks Streamable HTTP. You connect once with OAuth, paste your Novacal API key, and your client keeps working from there.
Connect
The hosted server is at https://mcp.novacal.io/mcp.
Claude Code
Cursor, Windsurf, or any client with an MCP config file
Claude Desktop and claude.ai
Add a custom connector and paste the same URL.
On first connect your client opens the sign-in page. Paste your Novacal API key and press Connect. That is the whole setup.
Tools
Read tools are marked read-only and idempotent. novacal_cancel_event is marked destructive, so clients that ask before destructive calls will ask.
Event type scope
novacal_get_event_types takes an optional scope:
Use personal for your own event types and team for team event types. Leave it out to get both. The server tells the model to prefer personal unless you ask for a team event type.
Availability date ranges
start and end are plain YYYY-MM-DD dates. The range is start-inclusive and end-exclusive:
For a single day, pass the next day as end:
That returns availability for May 29, 2026. Passing the same date for start and end is an empty range and returns nothing.
Timezones
timezone takes an IANA name such as Europe/Amsterdam, America/New_York, or Asia/Tokyo. It defaults to UTC when omitted.
On connect the server reads your Novacal profile timezone and puts it in the server instructions. So the model reads relative dates in your timezone and shows times in your timezone, unless you ask for another one.
How auth works
- Your client starts an OAuth flow against the Worker.
- The Worker serves
/authorizeand asks for your Novacal API key. - It verifies the key with
GET /v1/users/me. - It encrypts the key into the OAuth session props and completes the flow.
The key is only recoverable with your access token. It is never written to storage in readable form, never echoed back into the page, and is kept out of the grant metadata, which is stored unencrypted.
Removing the connection in your client does not revoke the key. To cut off access, rotate the key in Novacal.
Local development
You need Node 20+ and a Cloudflare account for deploys.
npm run dev uses the dev Wrangler environment. It simulates KV and D1 locally and points at a Novacal API on http://localhost:8010, so it never touches production resources.
To poke at the tools by hand:
Checks
CI runs check, lint, and test on Node 20 for every push and pull request.
Deploy
Create the Cloudflare resources once:
Copy the returned IDs into wrangler.toml under OAUTH_KV and DB, then apply the schema:
Deploy the production environment:
Note: the
user_credentialstable is legacy. Credentials now live in the encrypted OAuth session and nothing reads or writes this table. It and theDBbinding stay only so existing deployments keep validating.
Configuration
How it is put together
Handlers are plain async functions with no MCP imports, so they are easy to test on their own. Every tool wraps its handler in a try/catch and returns an isError result instead of throwing. Failures reach the model as a short hint, not a raw JSON dump:
Calls to the Novacal API time out after 30 seconds.
Public routes
Links
- Novacal
- Model Context Protocol
- MCP registry entry —
io.github.ste7/novacal-mcp-server
来源:README.md,提交 0b0b457
工具
0版本历史
1- v0.1.0最新Sep 16, 2026
评分
已满足适用检查项的 75%
该评分衡量此收录条目的完整程度,依据注册中心条目、端点与公开来源计算得出。它不是对服务器本身的评价,也不表示服务器安全或当前可用:可连通性是带日期的检查结果,评分也不包含安装量或用户评价。
- 近 30 天内可连通必需25 分
- 已声明认证方式必需10 分
- 已列出工具15 分
请让服务器在无凭据时响应 tools/list,或发布可在沙箱中无凭据启动的软件包。
- 描述必需15 分
- 图标10 分
- 文档15 分
- 许可证10 分
请在仓库或注册中心条目中声明许可证。