Obsidian MCP Server

by cyanheads
Verified
# cloudflare-api-mcp This is a lightweight Model Control Protocol (MCP) server bootstrapped with [create-mcp](https://github.com/zueai/create-mcp) and deployed on Cloudflare Workers. This MCP server allows agents (such as Cursor) to interface with the [Cloudflare REST API](https://developers.cloudflare.com/api/). It's still under development, I will be adding more tools as I find myself needing them. ## Available Tools See [src/index.ts](src/index.ts) for the current list of tools. Every method in the class is an MCP tool. ## Installation 1. Run the automated install script to clone this MCP server and deploy it to your Cloudflare account: ```bash bun create mcp --clone https://github.com/zueai/cloudflare-api-mcp ``` 2. Open `Cursor Settings -> MCP -> Add new MCP server` and paste the command that was copied to your clipboard. 3. Upload your Cloudflare API key and email to your worker secrets: ```bash bunx wrangler secret put CLOUDFLARE_API_KEY bunx wrangler secret put CLOUDFLARE_API_EMAIL ``` ## Local Development Add your Cloudflare API key and email to the `.dev.vars` file: ```bash CLOUDFLARE_API_KEY=<your-cloudflare-api-key> CLOUDFLARE_API_EMAIL=<your-cloudflare-api-email> ``` ## Deploying 1. Run the deploy script: ```bash bun run deploy ``` 2. Reload your Cursor window to see the new tools. ## How to Create New MCP Tools To create new MCP tools, add methods to the `MyWorker` class in `src/index.ts`. Each function will automatically become an MCP tool that your agent can use. Example: ```typescript /** * Create a new DNS record in a zone. * @param zoneId {string} The ID of the zone to create the record in. * @param name {string} The name of the DNS record. * @param content {string} The content of the DNS record. * @param type {string} The type of DNS record (CNAME, A, TXT, or MX). * @param comment {string} Optional comment for the DNS record. * @param proxied {boolean} Optional whether to proxy the record through Cloudflare. * @return {object} The created DNS record. */ createDNSRecord(zoneId: string, name: string, content: string, type: string, comment?: string, proxied?: boolean) { // Implementation } ``` The JSDoc comments are important: - First line becomes the tool's description - `@param` tags define the tool's parameters with types and descriptions - `@return` tag specifies the return value and type ## Learn More - [Model Control Protocol Documentation](https://modelcontextprotocol.io) - [create-mcp Documentation](https://github.com/zueai/create-mcp) - [workers-mcp](https://github.com/cloudflare/workers-mcp) - [Cloudflare Workers documentation](https://developers.cloudflare.com/workers/) - [Cloudflare API Documentation](https://developers.cloudflare.com/api/)