MCP获取服务器-Java实现
一种基于Java的模型上下文协议(MCP)服务器,提供web内容获取和转换功能。这是原始的Java端口 TypeScript MCP获取服务器.
特性
服务器为web内容处理提供了四种主要工具:
- get_raw_text:直接从URL检索原始文本内容,无需浏览器呈现
- get_render_html:使用Playwright浏览器自动化获取完全渲染的HTML内容
- get_markdown:将网页内容转换为格式良好的Markdown
- get_markdown_summary:提取主要内容区域并转换为Markdown(删除导航、页眉、页脚)
项目结构
src/main/java/com/mcp/RayenMalouche/java/server/Fetch/
├── FetchApplication.java # Main application class
├── service/
│ └── WebContentService.java # Core web content processing service
└── tools/
│ ├── BaseFetchTool.java # Base class for all fetch tools
│ ├── GetRawTextTool.java # Raw text fetching tool
│ ├── GetRenderedHtmlTool.java # HTML rendering tool
│ ├── GetMarkdownTool.java # Markdown conversion tool
│ └── GetMarkdownSummaryTool.java # Main content extraction tool
└── controller/
└── WebContentController.java # REST Controller先决条件
- Java 17或更高版本
- Maven 3.6或更高版本
- 互联网连接(用于下载Playwright浏览器)
安装
- 克隆存储库:
git clone https://github.com/RayenMalouche/MCP-Fetch-Server-Java-version
cd MCP-Fetch-Server-Java-version- 安装Playwright浏览器(渲染HTML功能所需):
对于windows:
# Save the install-playwright.bat script and run it
install-playwright.bat# Or manually
mvn exec:java -Dexec.mainClass="com.microsoft.playwright.CLI" -Dexec.args="install"- 构建项目:
mvn clean compile- 打包应用程序:
mvn package运行服务器
发展模式
mvn spring-boot:run生产模式
java -jar target/Fetch-0.0.1-SNAPSHOT.jar服务器将在端口上启动 45455 默认情况下。
配置
您可以通过在中编辑以下常量来修改服务器配置 FetchApplication.java:
SERVER_PORT:更改端口号(默认值:45455)SERVER_NAME:修改服务器名称SERVER_VERSION:更新版本字符串
API终点
服务器通过HTTP服务器发送事件(SSE)公开以下MCP工具:
get_raw_text
{
"name": "get_raw_text",
"arguments": {
"url": "https://example.com/data.json"
}
}get_render_html
{
"name": "get_rendered_html",
"arguments": {
"url": "https://example.com"
}
}get_markdown
{
"name": "get_markdown",
"arguments": {
"url": "https://example.com/article"
}
}get_markdown_summary
{
"name": "get_markdown_summary",
"arguments": {
"url": "https://example.com/blog-post"
}
}依赖项
核心依赖关系
- Spring Boot:应用程序框架
- MCP-SDK:模型上下文协议实现
- 杰克逊:JSON处理
- 喷气:HTTP服务器
网页处理
- 剧作家:渲染内容的浏览器自动化
- JSoup:HTML解析和操作
- 柔性标记:HTML到Markdown的转换
- Java HTTP客户端:原始内容提取
错误处理
该服务器包括全面的错误处理功能,用于:
- URL无效
- 网络超时
- 浏览器自动化故障
- HTML分析错误
- Markdown转换问题
所有错误均以MCP工具结果的形式返回,并带有描述性错误消息。
性能注意事项
- 原始文本提取:快速、直接的HTTP请求
- 渲染HTML:由于浏览器自动化开销而变慢
- Markdown转换:HTML解析的额外处理时间
- 浏览器资源:Playwright浏览器在使用后已正确清理
测试
运行测试套件:
mvn test故障排除
剧作家问题
如果您遇到Playwright浏览器问题:
mvn exec:java@install-playwright-browsers或强制重新安装:
mvn exec:java -Dexec.mainClass="com.microsoft.playwright.CLI" -Dexec.args="install --force"内存问题
对于大页面,增加JVM内存:
java -Xmx2g -jar target/Fetch-0.0.1-SNAPSHOT.jar端口冲突
更改端口 FetchApplication.java 如果45455已经在使用中。
许可证
MIT许可证-有关详细信息,请参阅原始的TypeScript实现。
贡献
- 分叉存储库
- 创建要素分支
- 进行更改
- 添加测试
- 提交拉取请求
致谢
这个项目是原始TypeScript实现的Java移植 爸爸.
