Files
c53a5a741b Add DNS analytics server ( Copy over from !121 ) (#126)
* Add dns analytic mcp.

* Add zone list call.

* Format code and update README.

* Rebase and prepare for oauth scope.

* Update wrangler.jsonc for staging and dev env.
Add UserDetails binding for active account id.

* Address comments.

* Address comments.

* Add TODOs.

* t

* Linting fixes + add scopes

* Use MCP common zones_list tool

---------

Co-authored-by: axia <[email protected]>
2025-05-01 08:48:08 -05:00

1.7 KiB

Setup

If you'd like to iterate and test your MCP server, you can do so in local development.

Local Development

  1. Create a .dev.vars file in your project root:

    If you're a Cloudflare employee:

    CLOUDFLARE_CLIENT_ID=your_development_cloudflare_client_id
    CLOUDFLARE_CLIENT_SECRET=your_development_cloudflare_client_secret
    DEV_CLOUDFLARE_API_TOKEN=your_development_api_token
    

    If you're an external contributor, you can provide a development API token (See Cloudflare API for information on creating an API Token):

    DEV_DISABLE_OAUTH=true
    DEV_CLOUDFLARE_EMAIL=your_cloudflare_email
    # This is your api token with endpoint access.
    DEV_CLOUDFLARE_API_TOKEN=your_development_api_token
    
  2. Start the local development server:

    npx wrangler dev
    
  3. To test locally, open Inspector, and connect to http://localhost:8976/sse. Once you follow the prompts, you'll be able to "List Tools". You can also connect with any MCP client.

Deploying the Worker ( Cloudflare employees only )

Set secrets via Wrangler:

npx wrangler secret put CLOUDFLARE_CLIENT_ID -e <ENVIRONMENT>
npx wrangler secret put CLOUDFLARE_CLIENT_SECRET -e <ENVIRONMENT>

Set up a KV namespace

Create the KV namespace:

npx wrangler kv namespace create "OAUTH_KV"

Then, update the Wrangler file with the generated KV namespace ID.

Deploy & Test

Deploy the MCP server to make it available on your workers.dev domain:

npx wrangler deploy -e <ENVIRONMENT>

Test the remote server using Inspector:

npx @modelcontextprotocol/inspector@latest