Add mcp-docs with initial Antora support
This commit is contained in:
parent
51b75dca19
commit
724a12b697
11 changed files with 395 additions and 0 deletions
89
mcp-docs/pom.xml
Normal file
89
mcp-docs/pom.xml
Normal file
|
|
@ -0,0 +1,89 @@
|
||||||
|
<?xml version="1.0" encoding="UTF-8"?>
|
||||||
|
<!--
|
||||||
|
~ Copyright 2023-2024 the original author or authors.
|
||||||
|
~
|
||||||
|
~ Licensed under the Apache License, Version 2.0 (the "License");
|
||||||
|
~ you may not use this file except in compliance with the License.
|
||||||
|
~ You may obtain a copy of the License at
|
||||||
|
~
|
||||||
|
~ https://www.apache.org/licenses/LICENSE-2.0
|
||||||
|
~
|
||||||
|
~ Unless required by applicable law or agreed to in writing, software
|
||||||
|
~ distributed under the License is distributed on an "AS IS" BASIS,
|
||||||
|
~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
||||||
|
~ See the License for the specific language governing permissions and
|
||||||
|
~ limitations under the License.
|
||||||
|
-->
|
||||||
|
|
||||||
|
<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/maven-v4_0_0.xsd">
|
||||||
|
<modelVersion>4.0.0</modelVersion>
|
||||||
|
<parent>
|
||||||
|
<groupId>org.springframework.experimental</groupId>
|
||||||
|
<artifactId>mcp-parent</artifactId>
|
||||||
|
<version>0.4.0-SNAPSHOT</version>
|
||||||
|
</parent>
|
||||||
|
<artifactId>mcp-docs</artifactId>
|
||||||
|
<name>Spring AI MCP Docs</name>
|
||||||
|
<description>Spring AI MCP documentation</description>
|
||||||
|
|
||||||
|
<build>
|
||||||
|
<plugins>
|
||||||
|
<plugin>
|
||||||
|
<groupId>org.antora</groupId>
|
||||||
|
<artifactId>antora-maven-plugin</artifactId>
|
||||||
|
<version>${org.maven.antora-version}</version>
|
||||||
|
<extensions>true</extensions>
|
||||||
|
<configuration>
|
||||||
|
<options>
|
||||||
|
<option>--to-dir=target/antora/site</option>
|
||||||
|
<option>--stacktrace</option>
|
||||||
|
<option>--fetch</option>
|
||||||
|
</options>
|
||||||
|
<playbook>src/main/antora/antora-playbook.yml</playbook>
|
||||||
|
<packages>
|
||||||
|
<package>@antora/cli@3.2.0-alpha.6</package>
|
||||||
|
<package>@antora/atlas-extension@1.0.0-alpha.2</package>
|
||||||
|
<package>@antora/collector-extension@1.0.0-beta.1</package>
|
||||||
|
<package>@asciidoctor/tabs@1.0.0-beta.6</package>
|
||||||
|
<package>@springio/antora-extensions@1.14.2</package>
|
||||||
|
<package>@springio/asciidoctor-extensions@1.0.0-alpha.12</package>
|
||||||
|
<package>@djencks/asciidoctor-mathjax@0.0.9</package>
|
||||||
|
</packages>
|
||||||
|
</configuration>
|
||||||
|
</plugin>
|
||||||
|
<plugin>
|
||||||
|
<groupId>io.spring.maven.antora</groupId>
|
||||||
|
<artifactId>antora-component-version-maven-plugin</artifactId>
|
||||||
|
<version>${io.spring.maven.antora-version}</version>
|
||||||
|
<executions>
|
||||||
|
<execution>
|
||||||
|
<goals>
|
||||||
|
<goal>antora-component-version</goal>
|
||||||
|
</goals>
|
||||||
|
</execution>
|
||||||
|
</executions>
|
||||||
|
</plugin>
|
||||||
|
<plugin>
|
||||||
|
<groupId>org.apache.maven.plugins</groupId>
|
||||||
|
<artifactId>maven-assembly-plugin</artifactId>
|
||||||
|
<version>${maven-assembly-plugin.version}</version>
|
||||||
|
<configuration>
|
||||||
|
<descriptors>
|
||||||
|
<descriptor>src/assembly/javadocs.xml</descriptor>
|
||||||
|
</descriptors>
|
||||||
|
<finalName>spring-ai-mcp-${project.version}</finalName>
|
||||||
|
<appendAssemblyId>true</appendAssemblyId>
|
||||||
|
</configuration>
|
||||||
|
</plugin>
|
||||||
|
<plugin>
|
||||||
|
<groupId>org.apache.maven.plugins</groupId>
|
||||||
|
<artifactId>maven-deploy-plugin</artifactId>
|
||||||
|
<version>${maven-deploy-plugin.version}</version>
|
||||||
|
<configuration>
|
||||||
|
<skip>true</skip>
|
||||||
|
</configuration>
|
||||||
|
</plugin>
|
||||||
|
</plugins>
|
||||||
|
</build>
|
||||||
|
|
||||||
|
</project>
|
||||||
31
mcp-docs/src/assembly/javadocs.xml
Normal file
31
mcp-docs/src/assembly/javadocs.xml
Normal file
|
|
@ -0,0 +1,31 @@
|
||||||
|
<!--
|
||||||
|
~ Copyright 2023-2024 the original author or authors.
|
||||||
|
~
|
||||||
|
~ Licensed under the Apache License, Version 2.0 (the "License");
|
||||||
|
~ you may not use this file except in compliance with the License.
|
||||||
|
~ You may obtain a copy of the License at
|
||||||
|
~
|
||||||
|
~ https://www.apache.org/licenses/LICENSE-2.0
|
||||||
|
~
|
||||||
|
~ Unless required by applicable law or agreed to in writing, software
|
||||||
|
~ distributed under the License is distributed on an "AS IS" BASIS,
|
||||||
|
~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
||||||
|
~ See the License for the specific language governing permissions and
|
||||||
|
~ limitations under the License.
|
||||||
|
-->
|
||||||
|
|
||||||
|
<assembly xmlns="http://maven.apache.org/ASSEMBLY/2.1.0"
|
||||||
|
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
|
||||||
|
xsi:schemaLocation="http://maven.apache.org/ASSEMBLY/2.1.0 http://maven.apache.org/xsd/assembly-2.1.0.xsd">
|
||||||
|
<id>docs</id>
|
||||||
|
<formats>
|
||||||
|
<format>zip</format>
|
||||||
|
</formats>
|
||||||
|
<includeBaseDirectory>false</includeBaseDirectory>
|
||||||
|
<fileSets>
|
||||||
|
<fileSet>
|
||||||
|
<directory>../target/site/apidocs</directory>
|
||||||
|
<outputDirectory>api</outputDirectory>
|
||||||
|
</fileSet>
|
||||||
|
</fileSets>
|
||||||
|
</assembly>
|
||||||
48
mcp-docs/src/main/antora/antora-playbook.yml
Normal file
48
mcp-docs/src/main/antora/antora-playbook.yml
Normal file
|
|
@ -0,0 +1,48 @@
|
||||||
|
# PACKAGES antora@3.2.0-alpha.6 @antora/atlas-extension:1.0.0-alpha.1 @antora/collector-extension@1.0.0-alpha.3 @springio/antora-extensions@1.1.0-alpha.2 @asciidoctor/tabs@1.0.0-alpha.12 @opendevise/antora-release-line-extension@1.0.0-alpha.2
|
||||||
|
#
|
||||||
|
# The purpose of this Antora playbook is to build the docs in the current branch.
|
||||||
|
antora:
|
||||||
|
extensions:
|
||||||
|
- '@antora/collector-extension'
|
||||||
|
# - require: '@springio/antora-extensions/root-component-extension'
|
||||||
|
- require: '@springio/antora-extensions'
|
||||||
|
root_component_name: 'ai'
|
||||||
|
site:
|
||||||
|
title: Spring AI Reference
|
||||||
|
url: https://docs.spring.io/spring-ai-mcp/reference
|
||||||
|
robots: allow
|
||||||
|
git:
|
||||||
|
ensure_git_suffix: false
|
||||||
|
content:
|
||||||
|
sources:
|
||||||
|
- url: ./../../../..
|
||||||
|
branches: HEAD
|
||||||
|
start_path: mcp-docs/src/main/antora
|
||||||
|
worktrees: true
|
||||||
|
asciidoc:
|
||||||
|
attributes:
|
||||||
|
page-related-doc-categories: ai,java,ml,mcp
|
||||||
|
page-pagination: ''
|
||||||
|
hide-uri-scheme: '@'
|
||||||
|
tabs-sync-option: '@'
|
||||||
|
chomp: 'all'
|
||||||
|
stem: 'asciimath'
|
||||||
|
extensions:
|
||||||
|
- '@asciidoctor/tabs'
|
||||||
|
- '@springio/asciidoctor-extensions'
|
||||||
|
- '@springio/asciidoctor-extensions/javadoc-extension'
|
||||||
|
- '@springio/asciidoctor-extensions/include-code-extension'
|
||||||
|
- '@djencks/asciidoctor-mathjax'
|
||||||
|
sourcemap: true
|
||||||
|
urls:
|
||||||
|
latest_version_segment_strategy: redirect:to
|
||||||
|
latest_version_segment: ''
|
||||||
|
redirect_facility: httpd
|
||||||
|
runtime:
|
||||||
|
log:
|
||||||
|
failure_level: warn
|
||||||
|
format: pretty
|
||||||
|
ui:
|
||||||
|
bundle:
|
||||||
|
url: https://github.com/spring-io/antora-ui-spring/releases/download/v0.4.17/ui-bundle.zip
|
||||||
|
snapshot: true
|
||||||
12
mcp-docs/src/main/antora/antora.yml
Normal file
12
mcp-docs/src/main/antora/antora.yml
Normal file
|
|
@ -0,0 +1,12 @@
|
||||||
|
name: ai
|
||||||
|
version: true
|
||||||
|
title: Spring AI
|
||||||
|
nav:
|
||||||
|
- modules/ROOT/nav.adoc
|
||||||
|
ext:
|
||||||
|
collector:
|
||||||
|
- run:
|
||||||
|
command: mvnw process-resources
|
||||||
|
local: true
|
||||||
|
scan:
|
||||||
|
dir: mcp-docs/target/classes/antora-resources
|
||||||
Binary file not shown.
|
After Width: | Height: | Size: 736 KiB |
3
mcp-docs/src/main/antora/modules/ROOT/nav.adoc
Normal file
3
mcp-docs/src/main/antora/modules/ROOT/nav.adoc
Normal file
|
|
@ -0,0 +1,3 @@
|
||||||
|
* xref:index.adoc[Overview]
|
||||||
|
// ** xref:concepts.adoc[AI Concepts]
|
||||||
|
// * xref:getting-started.adoc[Getting Started]
|
||||||
119
mcp-docs/src/main/antora/modules/ROOT/pages/index.adoc
Normal file
119
mcp-docs/src/main/antora/modules/ROOT/pages/index.adoc
Normal file
|
|
@ -0,0 +1,119 @@
|
||||||
|
= Java & Spring MCP
|
||||||
|
|
||||||
|
Java SDK for the Model Context Protocol (MCP), providing seamless integration between Java and Spring applications and MCP-compliant AI resources and tools.
|
||||||
|
|
||||||
|
== Overview
|
||||||
|
|
||||||
|
Provides Java and Spring Framework integration for the link:https://modelcontextprotocol.org/docs/concepts/architecture[Model Context Protocol]. It enables Java applications to interact with AI models and tools through a standardized interface, supporting both synchronous and asynchronous communication patterns.
|
||||||
|
|
||||||
|
image::spring-ai-mcp-architecture.jpg[Spring AI MCP Architecture,600]
|
||||||
|
|
||||||
|
== Modules
|
||||||
|
|
||||||
|
The project consists of two main modules:
|
||||||
|
|
||||||
|
=== mcp
|
||||||
|
|
||||||
|
Java implementation of the Model Context Protocol specification. It includes:
|
||||||
|
|
||||||
|
* Synchronous and asynchronous link:https://github.com/spring-projects-experimental/spring-ai-mcp/blob/main/mcp/README.md#client-usage-examples[MCP Client] and link:https://github.com/spring-projects-experimental/spring-ai-mcp/blob/main/mcp/README.md#server-usage-examples[MCP Server] implementations
|
||||||
|
* Standard MCP operations support (tool discovery, resource management, prompt handling, structured logging). Support for request and notification handling.
|
||||||
|
* link:https://spec.modelcontextprotocol.io/specification/basic/transports/#stdio[Stdio] and link:https://spec.modelcontextprotocol.io/specification/basic/transports/#http-with-sse[SSE] transport implementations.
|
||||||
|
* link:./mcp/README.md[Find more].
|
||||||
|
|
||||||
|
=== spring-ai-mcp
|
||||||
|
|
||||||
|
The Spring integration module provides Spring-specific functionality:
|
||||||
|
|
||||||
|
* Integration with Spring AI's function calling system
|
||||||
|
* Spring-friendly abstractions for MCP clients
|
||||||
|
* Auto-configurations (WIP)
|
||||||
|
|
||||||
|
== Requirements
|
||||||
|
|
||||||
|
* Java 17 or later
|
||||||
|
* Maven 3.6 or later
|
||||||
|
* Spring AI 1.0.0-M4 or later
|
||||||
|
|
||||||
|
== Installation
|
||||||
|
|
||||||
|
Add the following dependencies to your Maven project:
|
||||||
|
|
||||||
|
[source,xml]
|
||||||
|
----
|
||||||
|
<!-- For core MCP functionality -->
|
||||||
|
<dependency>
|
||||||
|
<groupId>org.springframework.experimental</groupId>
|
||||||
|
<artifactId>mcp</artifactId>
|
||||||
|
<version>0.4.0-SNAPSHOT</version>
|
||||||
|
</dependency>
|
||||||
|
|
||||||
|
<!-- For Spring AI integration -->
|
||||||
|
<dependency>
|
||||||
|
<groupId>org.springframework.experimental</groupId>
|
||||||
|
<artifactId>spring-ai-mcp</artifactId>
|
||||||
|
<version>0.4.0-SNAPSHOT</version>
|
||||||
|
</dependency>
|
||||||
|
----
|
||||||
|
|
||||||
|
== Example Demos
|
||||||
|
|
||||||
|
Explore these MCP examples in the link:https://github.com/spring-projects/spring-ai-examples/tree/main/model-context-protocol[spring-ai-examples/model-context-protocol] repository:
|
||||||
|
|
||||||
|
* link:https://github.com/spring-projects/spring-ai-examples/tree/main/model-context-protocol/sqlite/simple[SQLite Simple] - Demonstrates LLM integration with a database
|
||||||
|
* link:https://github.com/spring-projects/spring-ai-examples/tree/main/model-context-protocol/sqlite/chatbot[SQLite Chatbot] - Interactive chatbot with SQLite database interaction
|
||||||
|
* link:https://github.com/spring-projects/spring-ai-examples/tree/main/model-context-protocol/filesystem[Filesystem] - Enables LLM interaction with local filesystem folders and files
|
||||||
|
* link:https://github.com/spring-projects/spring-ai-examples/tree/main/model-context-protocol/brave[Brave] - Enables natural language interactions with Brave Search, allowing you to perform internet searches.
|
||||||
|
* link:./spring-ai-mcp-sample/[Spring-ai-mcp-sample] - Showcases how to create and use MCP servers and clients with different transport modes and capabilities.
|
||||||
|
|
||||||
|
== Documentation
|
||||||
|
|
||||||
|
* link:mcp/README.md[Java MCP SDK documentation]
|
||||||
|
** link:docs/ref-index.md[Reference documentation]
|
||||||
|
* link:spring-ai-mcp/README.md[Spring Integration documentation]
|
||||||
|
|
||||||
|
== Development
|
||||||
|
|
||||||
|
=== Building from Source
|
||||||
|
|
||||||
|
[source,bash]
|
||||||
|
----
|
||||||
|
mvn clean install
|
||||||
|
----
|
||||||
|
|
||||||
|
=== Running Tests
|
||||||
|
|
||||||
|
[source,bash]
|
||||||
|
----
|
||||||
|
mvn test
|
||||||
|
----
|
||||||
|
|
||||||
|
== Project Information
|
||||||
|
|
||||||
|
* *Group ID*: org.springframework.experimental
|
||||||
|
* *Version*: 0.4.0-SNAPSHOT
|
||||||
|
* *Java Version*: 17
|
||||||
|
* *Spring AI Version*: 1.0.0-M4
|
||||||
|
|
||||||
|
== Contributing
|
||||||
|
|
||||||
|
This is an experimental Spring project. Contributions are welcome! Please:
|
||||||
|
|
||||||
|
1. Fork the repository
|
||||||
|
2. Create a feature branch
|
||||||
|
3. Submit a Pull Request
|
||||||
|
|
||||||
|
== Team
|
||||||
|
|
||||||
|
* Christian Tzolov
|
||||||
|
* Dariusz Jędrzejczyk
|
||||||
|
|
||||||
|
== Links
|
||||||
|
|
||||||
|
* link:https://github.com/spring-projects-experimental/spring-ai-mcp[GitHub Repository]
|
||||||
|
* link:https://github.com/spring-projects-experimental/spring-ai-mcp/issues[Issue Tracker]
|
||||||
|
* link:https://github.com/spring-projects-experimental/spring-ai-mcp/actions[CI/CD]
|
||||||
|
|
||||||
|
== License
|
||||||
|
|
||||||
|
This project is licensed under the link:LICENSE[Apache License 2.0].
|
||||||
54
mcp-docs/src/main/antora/modules/ROOT/pages/index2.adoc
Normal file
54
mcp-docs/src/main/antora/modules/ROOT/pages/index2.adoc
Normal file
|
|
@ -0,0 +1,54 @@
|
||||||
|
= Spring AI MCP Spring
|
||||||
|
:page-title: Spring AI MCP Spring
|
||||||
|
:doctype: book
|
||||||
|
:icons: font
|
||||||
|
:source-highlighter: highlight.js
|
||||||
|
:toc: left
|
||||||
|
|
||||||
|
Spring Integration module for Model Control Protocol (MCP) that provides Spring-specific functionality for working with MCP clients.
|
||||||
|
|
||||||
|
== Overview
|
||||||
|
|
||||||
|
The `spring-ai-mcp` module is part of the https://github.com/spring-projects-experimental/spring-ai-mcp[Spring AI MCP] project. It provides Spring Framework integration for the Model Control Protocol (MCP), enabling seamless integration of MCP functionality within Spring applications.
|
||||||
|
|
||||||
|
== Features
|
||||||
|
|
||||||
|
* Spring integration for MCP clients
|
||||||
|
* Function callback implementation for tool invocations
|
||||||
|
* Seamless integration with Spring AI's function calling capabilities
|
||||||
|
|
||||||
|
== Main Components
|
||||||
|
|
||||||
|
=== McpFunctionCallback
|
||||||
|
|
||||||
|
The `McpFunctionCallback` class is the primary component of this module. It implements Spring AI's `FunctionCallback` interface and provides:
|
||||||
|
|
||||||
|
* Integration between Spring AI's function calling system and MCP tools
|
||||||
|
* Automatic conversion between JSON and Java objects for tool arguments
|
||||||
|
* Synchronous tool execution support
|
||||||
|
|
||||||
|
== Usage
|
||||||
|
|
||||||
|
To use this module, add the following dependency to your Maven project:
|
||||||
|
|
||||||
|
[source,xml]
|
||||||
|
----
|
||||||
|
<dependency>
|
||||||
|
<groupId>org.springframework.experimental</groupId>
|
||||||
|
<artifactId>spring-ai-mcp</artifactId>
|
||||||
|
<version>0.4.0-SNAPSHOT</version>
|
||||||
|
</dependency>
|
||||||
|
----
|
||||||
|
|
||||||
|
== License
|
||||||
|
|
||||||
|
This project is licensed under the https://www.apache.org/licenses/LICENSE-2.0[Apache License 2.0].
|
||||||
|
|
||||||
|
== Links
|
||||||
|
|
||||||
|
* https://github.com/spring-projects-experimental/spring-ai-mcp[GitHub Repository]
|
||||||
|
* https://github.com/spring-projects-experimental/spring-ai-mcp/issues[Issue Tracker]
|
||||||
|
|
||||||
|
== Contributing
|
||||||
|
|
||||||
|
This is an experimental Spring project. Contributions are welcome! Please refer to the main project's contribution guidelines.
|
||||||
|
|
@ -0,0 +1,2 @@
|
||||||
|
version: ${antora-component.version}
|
||||||
|
prerelease: ${antora-component.prerelease}
|
||||||
33
mcp-docs/src/main/javadoc/overview.html
Normal file
33
mcp-docs/src/main/javadoc/overview.html
Normal file
|
|
@ -0,0 +1,33 @@
|
||||||
|
<!--
|
||||||
|
~ Copyright 2023-2024 the original author or authors.
|
||||||
|
~
|
||||||
|
~ Licensed under the Apache License, Version 2.0 (the "License");
|
||||||
|
~ you may not use this file except in compliance with the License.
|
||||||
|
~ You may obtain a copy of the License at
|
||||||
|
~
|
||||||
|
~ https://www.apache.org/licenses/LICENSE-2.0
|
||||||
|
~
|
||||||
|
~ Unless required by applicable law or agreed to in writing, software
|
||||||
|
~ distributed under the License is distributed on an "AS IS" BASIS,
|
||||||
|
~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
||||||
|
~ See the License for the specific language governing permissions and
|
||||||
|
~ limitations under the License.
|
||||||
|
-->
|
||||||
|
|
||||||
|
<html>
|
||||||
|
<body>
|
||||||
|
<p>
|
||||||
|
This document is the API specification for <a href="https://docs.spring.io/spring-ai-mcp/reference" target="_top">Spring AI</a>
|
||||||
|
</p>
|
||||||
|
<div id="overviewBody">
|
||||||
|
<p>
|
||||||
|
For further API reference and developer documentation, see the
|
||||||
|
<a href="https://docs.spring.io/spring-ai-mcp/reference/" target="_top">
|
||||||
|
Spring AI MCP reference documentation</a>.
|
||||||
|
That documentation contains more detailed, developer-targeted
|
||||||
|
descriptions, with conceptual overviews, definitions of terms,
|
||||||
|
and working code examples.
|
||||||
|
</p>
|
||||||
|
</div>
|
||||||
|
</body>
|
||||||
|
</html>
|
||||||
4
pom.xml
4
pom.xml
|
|
@ -93,12 +93,16 @@
|
||||||
<maven-project-info-reports-plugin.version>3.4.5</maven-project-info-reports-plugin.version>
|
<maven-project-info-reports-plugin.version>3.4.5</maven-project-info-reports-plugin.version>
|
||||||
<maven-jar-plugin.version>3.3.0</maven-jar-plugin.version>
|
<maven-jar-plugin.version>3.3.0</maven-jar-plugin.version>
|
||||||
<spring-javaformat-maven-plugin.version>0.0.43</spring-javaformat-maven-plugin.version>
|
<spring-javaformat-maven-plugin.version>0.0.43</spring-javaformat-maven-plugin.version>
|
||||||
|
<org.maven.antora-version>1.0.0-alpha.4</org.maven.antora-version>
|
||||||
|
<io.spring.maven.antora-version>0.0.4</io.spring.maven.antora-version>
|
||||||
|
<asciidoctorj-pdf.version>1.6.2</asciidoctorj-pdf.version>
|
||||||
</properties>
|
</properties>
|
||||||
|
|
||||||
<modules>
|
<modules>
|
||||||
<module>mcp</module>
|
<module>mcp</module>
|
||||||
<module>spring-ai-mcp</module>
|
<module>spring-ai-mcp</module>
|
||||||
<module>spring-ai-mcp-sample</module>
|
<module>spring-ai-mcp-sample</module>
|
||||||
|
<module>mcp-docs</module>
|
||||||
</modules>
|
</modules>
|
||||||
|
|
||||||
<build>
|
<build>
|
||||||
|
|
|
||||||
Loading…
Reference in a new issue