forked from kptdobe/mcp-da-live-admin
-
Notifications
You must be signed in to change notification settings - Fork 0
remote HTTP MCP #13
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Open
dkuntze
wants to merge
29
commits into
main
Choose a base branch
from
remote
base: main
Could not load branches
Branch not found: {{ refName }}
Loading
Could not load tags
Nothing to show
Loading
Are you sure you want to change the base?
Some commits from the old base branch may be removed from the timeline,
and old review comments may become outdated.
Open
remote HTTP MCP #13
Changes from all commits
Commits
Show all changes
29 commits
Select commit
Hold shift + click to select a range
bcacefc
first pass at a HTTP MCP
dkuntze e695e18
remote merge
dkuntze 86c1882
Merge branch 'remote' of https://github.com/cloudadoption/helix-mcp i…
dkuntze e57b194
fix misc
dkuntze 2fc4adb
clean up docs
dkuntze 3b735cf
Restore README.md to match origin/main
dkuntze 581c962
lint fix
dkuntze 7591c01
new version of wrangler
dkuntze 1220c62
new cf accounts
dkuntze 4ec8225
fix cursor button
dkuntze ede8237
updated for sse
dkuntze 822302f
encode link to correct place
dkuntze b2921ec
fix url?
dkuntze c9340e1
remove button
dkuntze 574f878
remove stubs
dkuntze a36ac31
lint, lint, lint....
dkuntze 8f5d151
remove old envs
dkuntze 7fe3460
correct old info
dkuntze b42747c
update tool list
dkuntze a30d444
Resolve merge conflict in README.md
dkuntze 52a3855
Integrate real AEM Block Collection tools into Cloudflare Workers
dkuntze 824fce0
remove recent enhancements
dkuntze b2f50df
lint fix
dkuntze 57c4440
remove cursor tests
dkuntze ea584a6
remove tests
dkuntze a8977d3
Remove unused test directory
dkuntze e9ba854
Merge branch 'main' into remote
shsteimer 4674d18
smarter token detection
dkuntze cd33e70
update wrangler
dkuntze File filter
Filter by extension
Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
There are no files selected for viewing
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| Original file line number | Diff line number | Diff line change |
|---|---|---|
| @@ -1,3 +1,5 @@ | ||
| node_modules | ||
| .vscode | ||
| .env | ||
| .env | ||
| .wrangler | ||
| dist |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| Original file line number | Diff line number | Diff line change |
|---|---|---|
| @@ -0,0 +1,132 @@ | ||
| # Remote Helix MCP Server | ||
|
|
||
| [](https://github.com/cloudadoption/helix-mcp/actions/workflows/main.yml) | ||
|
|
||
| An MCP (Model Context Protocol) server that provides tools for interacting with the Helix and Document Authoring Admin API. This server allows you to interact with Helix and DA APIs through MCP tools. | ||
|
|
||
| ## Features | ||
|
|
||
| - **HTTP Transport**: Full HTTP API support with streaming capabilities | ||
| - **Cloudflare Workers Deployment**: Deployable to Cloudflare Workers for serverless operation | ||
| - **Client-Side Configuration**: API tokens and keys are passed by the MCP client | ||
| - **Full MCP Protocol Support**: Implements the complete MCP specification | ||
|
|
||
| ## Available Tools | ||
|
|
||
| ### ✅ Fully Functional Tools | ||
|
|
||
| - **`echo`**: Simple echo tool for testing | ||
| - **`page-status`**: Get detailed status of a single page (published, previewed, edited timestamps and URLs) | ||
| - **`start-bulk-page-status`**: Start asynchronous bulk page status analysis jobs for entire sites | ||
| - **`check-bulk-page-status`**: Check bulk page status job results with detailed page analysis | ||
| - **`audit-log`**: Retrieve comprehensive audit logs with time filtering (from, to, since parameters) | ||
| - **`aem-docs-search`**: Search official AEM documentation at www.aem.live with ranking and content retrieval | ||
|
|
||
| - **`block-list`**: Get list of available AEM blocks from the official Block Collection | ||
| - **`block-details`**: Get detailed information (JS, CSS, HTML) for specific AEM blocks from the Block Collection | ||
|
|
||
| ### 🚧 Limited Implementation Tools | ||
|
|
||
| - **`rum-data`**: Get Core Web Vitals and engagement metrics | ||
| - *Note: Returns structured response but full RUM bundle processing requires porting @adobe/rum-distiller to Workers environment* | ||
|
|
||
| ## Cursor AI Setup | ||
|
|
||
| To use this MCP server with Cursor AI, go to `Cursor Settings`, `MCP` and add a new server with the following configuration: | ||
|
|
||
| ```json | ||
| { | ||
| "mcp.servers": { | ||
| "helix-mcp-server": { | ||
| "command": "npx", | ||
| "args": [ | ||
| "mcp-remote", | ||
| "https://helix-mcp-server.aem-poc-lab.workers.dev/sse" | ||
| ], | ||
| "env": { | ||
| "DA_ADMIN_API_TOKEN": "your_api_token_here", | ||
| "HELIX_ADMIN_API_TOKEN": "your_api_token_here", | ||
| "RUM_DOMAIN_KEY": "your_rum_domain_key" | ||
| } | ||
| } | ||
| } | ||
| } | ||
| ``` | ||
|
|
||
| ## VS Code with GitHub Copilot Setup | ||
|
|
||
| To use this MCP server with VS Code and GitHub Copilot: | ||
|
|
||
| 1. **Install the MCP extension** for VS Code | ||
| 2. **Add server configuration** to your VS Code settings: | ||
|
|
||
| ```json | ||
| { | ||
| "mcp.servers": { | ||
| "helix-mcp-server": { | ||
| "command": "npx", | ||
| "args": [ | ||
| "mcp-remote", | ||
| "https://helix-mcp-server.aem-poc-lab.workers.dev/sse" | ||
| ], | ||
| "env": { | ||
| "DA_ADMIN_API_TOKEN": "your_api_token_here", | ||
| "HELIX_ADMIN_API_TOKEN": "your_api_token_here", | ||
| "RUM_DOMAIN_KEY": "your_rum_domain_key" | ||
| } | ||
| } | ||
| } | ||
| } | ||
| ``` | ||
|
|
||
| 3. **Restart VS Code** after adding the configuration | ||
| 4. **Verify installation** by opening the Command Palette (Cmd/Ctrl + Shift + P) and typing "MCP" | ||
|
|
||
| ## Deployment | ||
|
|
||
| ### Deploy to Cloudflare Workers | ||
|
|
||
| The server is configured to deploy to the **Adobe AEM POC** Cloudflare account: | ||
|
|
||
| ```bash | ||
| # Deploy to staging environment | ||
| npm run deploy:staging | ||
| # Available at: https://helix-mcp-server.aem-poc-lab.workers.dev | ||
|
|
||
| # Deploy to production environment | ||
| npm run deploy:production | ||
| # Available at: https://helix-mcp-server.aem-poc-lab.workers.dev | ||
|
|
||
| # Deploy to default environment | ||
| npm run deploy | ||
| # Available at: https://helix-mcp-server.aem-poc-lab.workers.dev | ||
| ``` | ||
| ### Example Usage After Deployment | ||
|
|
||
| ```bash | ||
| # Test production server | ||
| curl -X POST https://helix-mcp-server.aem-poc-lab.workers.dev \ | ||
| -H "Accept: application/json, text/event-stream" \ | ||
| -H "Content-Type: application/json" \ | ||
| -H "MCP-Protocol-Version: 2025-06-18" \ | ||
| -d '{ | ||
| "jsonrpc": "2.0", | ||
| "method": "initialize", | ||
| "id": 1, | ||
| "params": { | ||
| "protocolVersion": "2025-06-18", | ||
| "capabilities": { "tools": {} }, | ||
| "clientInfo": { "name": "test-client", "version": "1.0.0" } | ||
| } | ||
| }' | ||
| ``` | ||
|
|
||
| ## API Tokens | ||
|
|
||
| Replace the placeholder tokens with your actual API tokens: | ||
|
|
||
| - **DA_ADMIN_API_TOKEN**: Document Authoring Admin API token | ||
| - **HELIX_ADMIN_API_TOKEN**: Helix Admin API token | ||
| - **RUM_DOMAIN_KEY**: RUM domain key for analytics | ||
|
|
||
| You can obtain the Helix admin token by following these instructions: [https://www.aem.live/docs/admin-apikeys](https://www.aem.live/docs/admin-apikeys) OR by logging into [admin.hlx.page/login](https://admin.hlx.page/login) and capturing the `auth_token` from the cookie. | ||
Oops, something went wrong.
Oops, something went wrong.
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
I assume the env vars don't work with remote servers? in which case we should remove from docs?
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
you can still set them within whatever UI you are using - incl the chatbot.