黑客新闻MCP服务器
一个基于Spring Boot的MCP(Model-Controller-Provider)服务器,为Hacker News API提供RESTful API接口。此服务器旨在与Windsurf等MCP客户端无缝协作。
特性
- 黑客新闻内容的RESTful API端点
- 使用Caffeine支持缓存
- 非阻塞WebClient实现
- 全面的测试覆盖率
- 易于与MCP客户端集成
先决条件
- Java 17或更高版本
- Gradle 8.5或更高(通过Gradle Wrapper提供)
建设项目
- 克隆存储库:
git clone
cd hkn-mcp-server- 构建项目:
./gradlew build- 运行测试:
./gradlew test- 运行应用程序:
./gradlew bootRun默认情况下,服务器将在端口8080上启动。
API终点
按ID获取项目
GET /api/v1/news/item/{id}通过ID检索特定的黑客新闻项。
获取头条新闻
GET /api/v1/news/top?limit={limit}检索头条新闻。默认限制为30。
获取新故事
GET /api/v1/news/new?limit={limit}检索最新的故事。默认限制为30。
获取最佳故事
GET /api/v1/news/best?limit={limit}检索最佳故事。默认限制为30。
与MCP客户端一起使用
Windsurf集成
- 配置您的Windsurf客户端以指向此MCP服务器:
{
"mcp": {
"server": "http://localhost:8080"
}
}- MCP服务器公开以下资源类型:
- hn_item:个人黑客新闻项目(故事、评论等) - hn_top:热门故事提要 - hn_new:新故事提要 - hn_best:最佳故事推送
- Windsurf查询示例:
// Get a specific item
GET mcp://hn_item/12345
// Get top stories
GET mcp://hn_top?limit=10
// Get new stories
GET mcp://hn_new?limit=20
// Get best stories
GET mcp://hn_best?limit=15缓存
服务器使用Caffeine实现缓存,配置如下:
- 最大缓存大小:1000个条目
- 缓存过期时间:写入后5分钟
- 为项目和故事列表单独缓存
发展
项目结构
src/
├── main/
│ ├── java/
│ │ └── com/mount/rainier/hkn/mcp/
│ │ ├── config/
│ │ ├── controller/
│ │ ├── model/
│ │ └── service/
│ └── resources/
└── test/
└── java/
└── com/mount/rainier/hkn/mcp/
├── config/
├── controller/
├── model/
└── service/运行测试
# Run all tests
./gradlew test
# Run specific test class
./gradlew test --tests "com.mount.rainier.hkn.mcp.service.HackerNewsServiceTest"贡献
- 分叉存储库
- 创建要素分支
- 提交您的更改
- 推到分支
- 创建拉取请求
许可证
此项目根据MIT许可证获得许可-有关详细信息,请参阅许可证文件。
