This is an automated email from the ASF dual-hosted git repository.

rombert pushed a commit to branch issue/mcp-server
in repository https://gitbox.apache.org/repos/asf/sling-site.git

commit 3971c3a3baeb584e468175118a063492e289a952
Author: Robert Munteanu <[email protected]>
AuthorDate: Wed May 20 17:28:55 2026 +0200

    Document MCP server usage
---
 src/main/jbake/content/documentation/bundles.md    |   1 +
 .../content/documentation/bundles/mcp-server.md    | 125 +++++++++++++++++++++
 2 files changed, 126 insertions(+)

diff --git a/src/main/jbake/content/documentation/bundles.md 
b/src/main/jbake/content/documentation/bundles.md
index 54af0030c..c01c87c38 100644
--- a/src/main/jbake/content/documentation/bundles.md
+++ b/src/main/jbake/content/documentation/bundles.md
@@ -62,6 +62,7 @@ Libraries and utilities which are not reliant on Sling.
 * [Scripting](/documentation/bundles/scripting.html)
 * [Sling Settings 
(org.apache.sling.settings)](/documentation/bundles/sling-settings-org-apache-sling-settings.html)
 * [Caching Services](/documentation/bundles/caching-services.html)
+* [MCP Server](/documentation/bundles/mcp-server.html)
 * [Sling Models](/documentation/bundles/models.html)
 * [Sling Pax Exam Utilities](/documentation/pax-exam-utils.html)
 * [Sling Query Library](/documentation/bundles/sling-query.html)
diff --git a/src/main/jbake/content/documentation/bundles/mcp-server.md 
b/src/main/jbake/content/documentation/bundles/mcp-server.md
new file mode 100644
index 000000000..c4a192dcf
--- /dev/null
+++ b/src/main/jbake/content/documentation/bundles/mcp-server.md
@@ -0,0 +1,125 @@
+title=MCP Server
+type=page
+status=published
+tags=mcp,ai,tooling,bundles
+~~~~~~
+
+Apache Sling can expose a [Model Context Protocol 
(MCP)](https://modelcontextprotocol.io/) server from a running Sling instance. 
This allows MCP-aware clients to inspect and interact with Sling through HTTP, 
using tools and prompts contributed by Sling bundles.
+
+The MCP endpoint is exposed at `/bin/mcp`.
+
+## Overview
+
+The Sling MCP server is intended for development and diagnostics against a 
running Sling instance.
+
+This page documents a setup based on the `apache/sling` Docker image. Pending 
a release of version 15, a snapshot version is ued.
+
+## Starting Sling Starter With MCP Features
+
+Docker is required for the setup described here.
+
+Until Sling Starter 15 is released, use the `apache/sling:snapshot` Docker 
image.
+
+Launch the Sling Starter container image and add both MCP feature models using 
`--extra-features`.
+
+    docker run --rm -p 8080:8080 \
+      apache/sling:snapshot oak_tar \
+      --extra-features \
+        
mvn:org.apache.sling/org.apache.sling.mcp-server/0.1.4/slingosgifeature/main \
+        
mvn:org.apache.sling/org.apache.sling.mcp-server-contributions/0.1.0/slingosgifeature/main
+
+## Configuring MCP clients
+
+Configuration depends on the particular MCP client you are using. The key 
points are:
+
+- the MCP server URL is `http://localhost:8080/bin/mcp`
+- HTTP Basic authentication with admin credentials is required
+
+The MCP servlet allows access only for admin users. This prevents unauthorized 
access to potentially sensitive information and operations exposed through the 
MCP server.
+
+Read on for instructions for specific clients.
+
+### OpenCode
+
+OpenCode can connect to the Sling MCP server using a remote MCP definition.
+
+Example `opencode.json`:
+
+    {
+      "$schema": "https://opencode.ai/config.json";,
+      "mcp": {
+        "sling": {
+          "type": "remote",
+          "url": "http://localhost:8080/bin/mcp";,
+          "headers": {
+            "Authorization": "Basic YWRtaW46YWRtaW4="
+          }
+        }
+      }
+    }
+
+### Claude CLI
+
+Claude Code can connect to the Sling MCP server as a remote HTTP MCP server.
+
+Example command:
+
+    claude mcp add --transport http \
+      sling http://localhost:8080/bin/mcp \
+      --header "Authorization: Basic YWRtaW46YWRtaW4="
+
+## Default Contributions
+
+The base `org.apache.sling.mcp-server` bundle provides the HTTP MCP endpoint 
and prompt discovery from the Sling repository.
+
+The `org.apache.sling.mcp-server-contributions` bundle adds the default 
Sling-specific tools and prompts.
+
+### MCP Tools
+
+The following tools are available by default:
+
+* `logs`
+  Returns recent Sling logs with optional filtering by regex, log level and 
maximum number of entries.
+* `recent-requests`
+  Returns recent Sling requests, including method, path, user id and request 
progress log output.
+* `diagnose-osgi-bundle`
+  Diagnoses inactive or problematic OSGi bundles and Declarative Services 
components.
+
+### MCP Prompts
+
+The following prompts are available by default:
+
+* `troubleshoot`
+  A troubleshooting guide for common Sling and MCP server issues.
+* `new-sling-servlet`
+  A prompt template for creating a new Sling servlet based on a resource type.
+
+Prompts are discovered from repository content under `/libs/sling/mcp/prompts`.
+
+## Verifying The Setup
+
+Once Sling is running and your MCP client is configured:
+
+* connect the client to `http://localhost:8080/bin/mcp`
+* authenticate as an admin user
+* confirm that the default tools are visible: `logs`, `recent-requests`, 
`diagnose-osgi-bundle`
+* confirm that the default prompts are visible: `troubleshoot`, 
`new-sling-servlet`
+
+If the MCP endpoint is not reachable, verify that both MCP features were added 
successfully and that the client sends valid Basic authentication credentials.
+
+## Sample Prompts
+
+Once the server is connected, prompts like the following are good starting 
points:
+
+* `Analyse errors from my Sling instance`
+* `Where was most of the time spent in the request to /starter.html?`
+* `Why did bundle org.acme.foo fail to start?`
+
+## Extending The Server
+
+The Sling MCP server is extensible in two main ways:
+
+* register additional `McpServerContribution` services to expose new tools, 
prompts, resources or completions
+* install prompt content below `/libs/sling/mcp/prompts` so that it is 
discovered automatically
+
+This makes it possible to keep the server itself minimal while packaging 
Sling-specific or project-specific MCP capabilities in separate bundles.

Reply via email to