diff --git a/docs/en/cli/index.md b/docs/en/cli/index.md index 3a3d0c2304..a644ab3b6b 100644 --- a/docs/en/cli/index.md +++ b/docs/en/cli/index.md @@ -73,6 +73,7 @@ Here is the list of all available commands before explaining their details: * **[`clear-download-cache`](../cli#clear-download-cache)**: Clears the templates download cache. * **[`check-extensions`](../cli#check-extensions)**: Checks the latest version of the ABP CLI extensions. * **[`install-old-cli`](../cli#install-old-cli)**: Installs old ABP CLI. +* **[`mcp-studio`](../cli#mcp-studio)**: Starts ABP Studio MCP bridge for AI tools (requires ABP Studio running). * **[`generate-razor-page`](../cli#generate-razor-page)**: Generates a page class that you can use it in the ASP NET Core pipeline to return an HTML page. ### help @@ -981,6 +982,31 @@ Usage: abp install-old-cli [options] ``` +### mcp-studio + +Starts an MCP stdio bridge for AI tools (Cursor, Claude Desktop, VS Code, etc.) that connects to the local ABP Studio instance. ABP Studio must be running for this command to work. + +> This command connects to the **local ABP Studio** instance. It is separate from the `abp mcp` command, which connects to the ABP.IO cloud MCP service and requires an active license. + +Usage: + +```bash +abp mcp-studio [options] +``` + +Options: + +* `--endpoint` or `-e`: Overrides ABP Studio MCP endpoint. Default value is `http://localhost:38280/mcp/`. + +Example: + +```bash +abp mcp-studio +abp mcp-studio --endpoint http://localhost:38280/mcp/ +``` + +For detailed configuration examples (Cursor, Claude Desktop, VS Code) and the full list of available MCP tools, see the [Model Context Protocol (MCP)](../studio/model-context-protocol.md) documentation. + ### generate-razor-page `generate-razor-page` command to generate a page class and then use it in the ASP NET Core pipeline to return an HTML page. diff --git a/docs/en/docs-nav.json b/docs/en/docs-nav.json index fb94db85b2..dec47b14d9 100644 --- a/docs/en/docs-nav.json +++ b/docs/en/docs-nav.json @@ -340,6 +340,10 @@ "text": "Monitoring Applications", "path": "studio/monitoring-applications.md" }, + { + "text": "Model Context Protocol (MCP)", + "path": "studio/model-context-protocol.md" + }, { "text": "Working with Kubernetes", "path": "studio/kubernetes.md" diff --git a/docs/en/studio/model-context-protocol.md b/docs/en/studio/model-context-protocol.md new file mode 100644 index 0000000000..7af1dd7663 --- /dev/null +++ b/docs/en/studio/model-context-protocol.md @@ -0,0 +1,133 @@ +```json +//[doc-seo] +{ + "Description": "Learn how to connect AI tools like Cursor, Claude Desktop, and VS Code to ABP Studio using the Model Context Protocol (MCP)." +} +``` + +# ABP Studio: Model Context Protocol (MCP) + +````json +//[doc-nav] +{ + "Previous": { + "Name": "Monitoring Applications", + "Path": "studio/monitoring-applications" + }, + "Next": { + "Name": "Working with Kubernetes", + "Path": "studio/kubernetes" + } +} +```` + +ABP Studio includes built-in [Model Context Protocol (MCP)](https://modelcontextprotocol.io/) support so AI tools can query runtime telemetry and control solution runner operations. + +## How It Works + +ABP Studio runs a local MCP server in the background. The `abp mcp-studio` CLI command acts as a stdio bridge that AI clients connect to. The bridge forwards requests to ABP Studio and returns responses. + +```text +MCP Client (Cursor / Claude Desktop / VS Code) + ──stdio──▶ abp mcp-studio ──HTTP──▶ ABP Studio +``` + +> ABP Studio must be running while MCP is used. If ABP Studio is not running (or its MCP endpoint is unavailable), `abp mcp-studio` returns an error to the AI client. + +## Configuration + +### Cursor (`.cursor/mcp.json`) + +```json +{ + "mcpServers": { + "abp-studio": { + "command": "abp", + "args": ["mcp-studio"] + } + } +} +``` + +### Claude Desktop (`claude_desktop_config.json`) + +```json +{ + "mcpServers": { + "abp-studio": { + "command": "abp", + "args": ["mcp-studio"] + } + } +} +``` + +Claude Desktop config file locations: + +- macOS: `~/Library/Application Support/Claude/claude_desktop_config.json` +- Windows: `%APPDATA%\Claude\claude_desktop_config.json` +- Linux: `~/.config/Claude/claude_desktop_config.json` + +### VS Code (`.vscode/mcp.json`) + +```json +{ + "servers": { + "abp-studio": { + "command": "abp", + "args": ["mcp-studio"] + } + } +} +``` + +### Generating Config Files from ABP Studio + +When creating a new solution, ABP Studio can generate MCP configuration files for Cursor and VS Code automatically. + +## Available Tools + +ABP Studio exposes the following tools to MCP clients. All tools operate on the currently open solution and selected run profile in ABP Studio. + +### Monitoring + +| Tool | Description | +|------|-------------| +| `list_applications` | Lists all running ABP applications connected to ABP Studio. | +| `get_exceptions` | Gets recent exceptions including stack traces and error messages. | +| `get_logs` | Gets log entries. Can be filtered by log level. | +| `get_requests` | Gets HTTP request information. Can be filtered by status code. | +| `get_events` | Gets distributed events for debugging inter-service communication. | +| `clear_monitor` | Clears collected monitor data. | + +### Application Control + +| Tool | Description | +|------|-------------| +| `list_runnable_applications` | Lists all applications in the current run profile with their state. | +| `start_application` | Starts a stopped application. | +| `stop_application` | Stops a running application. | +| `restart_application` | Restarts a running application. | +| `build_application` | Builds a .NET application using `dotnet build`. | + +### Container Control + +| Tool | Description | +|------|-------------| +| `list_containers` | Lists Docker containers in the current run profile with their state. | +| `start_containers` | Starts Docker containers (docker-compose up). | +| `stop_containers` | Stops Docker containers (docker-compose down). | + +### Solution Structure + +| Tool | Description | +|------|-------------| +| `get_solution_info` | Gets solution name, path, template, and run profile information. | +| `list_modules` | Lists all modules in the solution. | +| `list_packages` | Lists packages (projects) in the solution. Can be filtered by module. | +| `get_module_dependencies` | Gets module dependency/import information. | + +## Notes + +- Monitor data (exceptions, logs, requests, events) is kept in memory and is cleared when the solution is closed. +- The `abp mcp-studio` command connects to the local ABP Studio instance. This is separate from the `abp mcp` command, which connects to the ABP.IO cloud MCP service and requires an active license. diff --git a/docs/en/studio/monitoring-applications.md b/docs/en/studio/monitoring-applications.md index 04dac9ef13..e06d387146 100644 --- a/docs/en/studio/monitoring-applications.md +++ b/docs/en/studio/monitoring-applications.md @@ -11,8 +11,8 @@ //[doc-nav] { "Next": { - "Name": "Working with Kubernetes", - "Path": "studio/kubernetes" + "Name": "Model Context Protocol (MCP)", + "Path": "studio/model-context-protocol" } } ````