8000 GitHub - yult97/mowen-mcp-server-Java
[go: up one dir, main page]
More Web Proxy on the site http://driver.im/
Skip to content

yult97/mowen-mcp-server-Java

Repository files navigation

墨问MCP服务器 - Java版

这是一个基于Spring AI框架和**模型上下文协议(MCP)**的服务器,用于与墨问笔记软件进行交互。通过此服务器,你可以在支持MCP的应用(如Cursor、Claude Desktop等)中直接创建、编辑和管理墨问笔记。

本项目是原Python版本 mowen-mcp-server 的Java重构版本,使用Spring AI框架实现,提供更好的企业级特性和扩展性。

✨ 主要特性

  • 🔗 兼容MCP协议:完全支持模型上下文协议规范
  • 🌱 Spring AI集成:基于Spring AI框架,支持多种AI模型集成
  • 📝 创建笔记:统一的富文本格式,支持段落、加粗、高亮、链接、引用和内链笔记
  • ✏️ 编辑笔记:统一的富文本格式,完全替换笔记内容
  • 📁 文件上传:支持图片、音频、PDF文件上传,本地文件和远程URL两种方式
  • 💬 引用段落:创建引用文本块,支持富文本格式
  • 🔗 内链笔记:引用其他笔记,创建笔记间的关联
  • 🔒 隐私设置:设置笔记的公开、私有或规则公开权限
  • 🔄 密钥管理:重置API密钥功能
  • 🎨 统一接口:所有笔记操作使用一致的富文本参数格式
  • 🚀 企业级特性:基于Spring Boot,支持配置管理、监控、日志等

🆕 相比Python版本的优势

  1. 更好的类型安全:Java强类型系统,减少运行时错误
  2. 企业级框架:基于Spring Boot,提供完整的企业级特性
  3. AI模型集成:内置Spring AI支持,可轻松集成各种AI模型
  4. 更好的性能:JVM优化和响应式编程支持
  5. 配置管理:支持多环境配置和外部化配置
  6. 监控和运维:内置健康检查、指标监控等功能
  7. 打包部署:支持JAR包独立部署,无需Python环境

📋 前提条件

  • Java 17+
  • Maven 3.6+
  • 墨问Pro会员账号(API功能仅对Pro会员开放)
  • 墨问API密钥(在墨问小程序中获取)

🚀 快速开始

1. 克隆项目

git clone <repository-url>
cd mowen-mcp-server-Java

2. 配置API密钥

方式一:环境变量(推荐)

# Linux/macOS
export MOWEN_API_KEY="你的墨问API密钥"

# Windows PowerShell
$env:MOWEN_API_KEY="你的墨问API密钥"

# Windows CMD
set MOWEN_API_KEY=你的墨问API密钥

方式二:配置文件

src/main/resources/application.yml 中设置:

mowen:
  api-key: "你的墨问API密钥"

方式三:.env文件

在项目根目录创建 .env 文件:

MOWEN_API_KEY=你的墨问API密钥

3. 编译和运行

开发模式

# 编译项目
cd /Users/yubobo/Documents/traeProject/mowen-mcp-server-Java
mvn clean package -DskipTests

# 使用启动脚本运行项目(推荐)
./scripts/start-server.sh

# 或者后台运行
./scripts/start-server.sh --daemon

4. 停止服务器

./scripts/stop-server.sh

4. 验证服务

服务启动后,访问以下端点验证:

🔧 配置MCP客户端

Cursor配置

在Cursor设置中添加以下配置:

{
  "mcpServers": {
    "mowen-mcp-server-java": {
      "command": "java",
      "args": [
        "-jar",
        "/绝对路径/mowen-mcp-server-Java/target/mowen-mcp-server-java-1.0.0.jar"
      ],
      "env": {
        "MOWEN_API_KEY": "${env:MOWEN_API_KEY}",
        "SERVER_PORT": "8080"
      }
    }
  }
}

Claude Desktop配置

在Claude Desktop的配置文件中添加:

{
  "mcpServers": {
    "mowen-mcp-server-java": {
      "command": "java",
      "args": [
        "-jar",
        "/绝对路径/mowen-mcp-server-Java/target/mowen-mcp-server-java-1.0.0.jar"
      ],
      "env": {
        "MOWEN_API_KEY": "你的墨问API密钥"
      }
    }
  }
}

注意: 请将 /绝对路径/ 替换为你的实际项目路径。

🛠️ 可用工具

create_note

创建一篇新的墨问笔记,使用统一的富文本格式

参数:

  • paragraphs (数组,必需):富文本段落列表
  • auto_publish (布尔值,可选):是否自动发布,默认为false
  • tags (字符串数组,可选):笔记标签列表

示例:

{
  "paragraphs": [
    {
      "texts": [
        {"text": "这是标题", "bold": true},
        {"text": "这是普通文本"}
      ]
    },
    {
      "type": "quote",
      "texts": [
        {"text": "这是引用段落", "highlight": true}
      ]
    }
  ],
  "auto_publish": false,
  "tags": ["标签1", "标签2"]
}

edit_note

编辑现有的墨问笔记,完全替换笔记内容

参数:

  • note_id (字符串,必需):要编辑的笔记ID
  • paragraphs (数组,必需):新的富文本段落列表

set_note_privacy

设置笔记的隐私权限

参数:

  • note_id (字符串,必需):笔记ID
  • privacy_type (字符串,必需):隐私类型(public/private/rule)
  • rule (对象,可选):隐私规则

upload_local_file

上传本地文件到墨问笔记

参数:

  • file_path (字符串,必需):本地文件的绝对路径
  • file_type (字符串,必需):文件类型(image/audio/pdf)
  • file_name (字符串,可选):文件名

upload_url_file

通过URL上传文件到墨问笔记

参数:

  • url (字符串,必需):文件URL
  • file_type (字符串,必需):文件类型(image/audio/pdf)
  • file_name (字符串,可选):文件名

reset_api_key

重置墨问API密钥

⚙️ 配置选项

基础配置

mowen:
  api-key: "你的API密钥"              # 墨问API密钥
  base-url: "https://open.mowen.cn"   # API基础URL
  timeout: 30                          # 请求超时时间(秒)
  upload-timeout: 300                  # 文件上传超时时间(秒)
  enable-detailed-logging: true        # 是否启用详细日志

Spring AI配置(可选)

spring:
  ai:
    openai:
      api-key: "你的OpenAI密钥"
      chat:
        options:
          model: "gpt-3.5-turbo"
          temperature: 0.7

服务器配置

server:
  port: 8080                          # 服务端口
  servlet:
    context-path: /                   # 上下文路径

📊 监控和运维

健康检查

curl http://localhost:8080/actuator/health

应用信息

curl http://localhost:8080/actuator/info

指标监控

curl http://localhost:8080/actuator/metrics

🔍 故障排除

常见问题

  1. API密钥错误

    • 检查环境变量 MOWEN_API_KEY 是否正确设置
    • 确认API密钥在墨问小程序中有效
  2. 文件上传失败

    • 确保文件路径使用绝对路径
    • 检查文件是否存在且可读
    • 确认文件类型支持(image/audio/pdf)
  3. 连接超时

    • 检查网络连接
    • 调整 mowen.timeout 配置
  4. 权限错误

    • 确认墨问账号为Pro会员
    • 检查API密钥权限

日志配置

logging:
  level:
    cn.mowen.mcp: DEBUG              # 开启调试日志
  file:
    name: logs/mowen-mcp-server.log  # 日志文件路径

🧪 测试

运行单元测试

mvn test

运行集成测试

mvn verify

手动测试API

# 测试工具列表
curl http://localhost:8080/mcp/tools

# 测试创建笔记
curl -X POST http://localhost:8080/mcp/tools/create_note \
  -H "Content-Type: application/json" \
  -d '{
    "paragraphs": [
      {
        "texts": [
          {"text": "测试笔记", "bold": true}
        ]
      }
    ]
  }'

📦 部署

Docker部署(推荐)

# Dockerfile
FROM openjdk:17-jre-slim

WORKDIR /app
COPY target/mowen-mcp-server-java-1.0.0.jar app.jar

EXPOSE 8080

ENTRYPOINT ["java", "-jar", "app.jar"]
# 构建镜像
docker build -t mowen-mcp-server-java .

# 运行容器
docker run -d \
  -p 8080:8080 \
  -e MOWEN_API_KEY="你的API密钥" \
  --name mowen-mcp-server \
  mowen-mcp-server-java

系统服务部署

创建systemd服务文件 /etc/systemd/system/mowen-mcp-server.service

[Unit]
Description=Mowen MCP Server Java
After=network.target

[Service]
Type=simple
User=mowen
WorkingDirectory=/opt/mowen-mcp-server
ExecStart=/usr/bin/java -jar mowen-mcp-server-java-1.0.0.jar
Environment=MOWEN_API_KEY=你的API密钥
Restart=always
RestartSec=10

[Install]
WantedBy=multi-user.target
# 启用并启动服务
sudo systemctl enable mowen-mcp-server
sudo systemctl start mowen-mcp-server

# 查看服务状态
sudo systemctl status mowen-mcp-server

🤝 贡献

欢迎提交Issue和Pull Request!

  1. Fork本项目
  2. 创建特性分支 (git checkout -b feature/AmazingFeature)
  3. 提交更改 (git commit -m 'Add some AmazingFeature')
  4. 推送到分支 (git push origin feature/AmazingFeature)
  5. 开启Pull Request

📄 许可证

本项目采用MIT许可证 - 查看 LICENSE 文件了解详情。

🙏 致谢

  • 感谢墨问团队提供的API服务
  • 感谢Spring AI团队提供的优秀框架
  • 感谢原Python版本的开发者
  • 感谢一支烟花社区的支持

📞 联系方式


注意:本项目仅供学习和研究使用,请遵守墨问API的使用条款和限制。

About

No description, website, or topics provided.

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published
0