Ollama网络搜索MCP服务器
一种模型上下文协议(MCP)服务器,使用Ollama网络搜索API为人工智能助手提供网络搜索功能。该服务器允许LLM通过标准化的MCP接口从网络访问实时信息。
快速入门:运行MCP服务器
服务器需要Ruby 3.4.7、Bundler和 OLLAMA_API_KEY.
- 安装依赖项:
bundle install- 导出API密钥:
export OLLAMA_API_KEY="your-api-key-here"STDIO传输
本地MCP客户端可以直接启动STDIO服务器:
# Start via Ruby
bundle exec ruby bin/mcp_server
# Or via Rake
bundle exec rake startHTTP传输
通过HTTP公开MCP服务器(默认端口为8080):
bundle exec ruby bin/http_server # port 8080
bundle exec ruby bin/http_server 3000 # custom port
# Or via Rake
bundle exec rake start_http # port 8080
bundle exec rake "start_http[3000]" # custom port样品工具请求
在HTTP服务器运行时,您可以调用 web_search HTTP工具:
curl -s http://localhost:8080/ \
-H "Content-Type: application/json" \
-d '{
"jsonrpc": "2.0",
"id": "1",
"method": "tools/call",
"params": {
"name": "web_search",
"arguments": {
"query": "latest AI news",
"max_results": 2
}
}
}'响应中包含格式化的搜索结果 result.content[0].text.
目录
- 网络搜索工具
概述
这种基于Ruby的MCP服务器实现使人工智能助手能够使用Ollama网络搜索API执行网络搜索。该项目遵循MCP规范,为AI模型访问外部信息提供了一种标准化的方式。
特性
- 通过Ollama的网络搜索API实现网络搜索功能
- 用于AI助手集成的标准化MCP接口
- 可配置的结果限制(1-10个结果)
- 带有标题、URL和内容的结构化搜索结果
- 支持STDIO和HTTP传输协议
- 使用Dry:Struct的类型安全数据结构
- 全面的错误处理
先决条件
- Ruby 3.4.7
- Bundler宝石
- Ollama API密钥
安装
- 克隆存储库:
git clone https://github.com/AnotherRegularDude/ollama-web-search-mcp.git
cd ollama-web-search-mcp- 安装依赖项:
bundle install配置
服务器需要Ollama API密钥才能运行。设置 OLLAMA_API_KEY 环境变量:
export OLLAMA_API_KEY="your-api-key-here"api参考
网络搜索工具
服务器公开了一个用于网络搜索的工具:
工具名称: web_search
参数:
query(string,必填):搜索查询字符串max_results(整数,可选):返回的最大结果(默认值5,最大值10)
响应格式:
Search results for: {query}
1. {title}
URL: {url}
Content: {content}
2. {title}
URL: {url}
Content: {content}
...示例请求:
{
"query": "latest news about AI",
"max_results": 3
}发展
项目结构
├── app/
│ ├── adapters/ # External service integrations (Ollama gateway)
│ ├── cases/ # Service objects implementing business logic
│ ├── entities/ # Typed data structures
│ └── mcp_ext/ # MCP tools, transports, and server factory
├── bin/ # Executable scripts
├── config/ # Application configuration and defaults
├── lib/ # Shared abstractions (types, service base classes)
├── spec/ # Test files
└── tmp/ # Temporary files (cache, coverage artifacts)运行测试
使用RSpec执行所有测试:
# Run all tests
rspec
# Run specific test files
rspec spec/代码质量
运行RuboCop进行代码样式检查:
# Run RuboCop
rake rubocop
# Auto-correct RuboCop offenses
rake rubocop --auto-correct建筑
该项目遵循面向服务的架构,关注点明确分离:
服务层
业务逻辑存在于以下服务对象中 app/cases/ 继承自 ServiceObject,一个基于Resol的基类,包含干式验证和一致的成功/失败处理。
适配器层
外部服务集成封装在位于以下位置的适配器中 app/adapters/Ollama网关处理API身份验证和请求/响应处理。
数据层
实体是通过以下方式实现的 Dry::Struct 用于类型安全的数据结构。它们提供具有明确属性定义的不可变数据对象。
MCP层
app/mcp_ext/ 包含MCP服务器表面:
Tool::WebSearch暴露web_searchMCP工具和格式响应。TransportHandler构建STDIO或HTTP传输。ServerFactory将服务器与所选的传输和工具连接起来。
贡献
- 复刻仓库
- 创建要素分支
- 进行更改
- 为您的更改添加测试
- 运行测试以确保通过
- 根据需要更新文档
- 提交拉取请求
开发指南
- 遵循现有的代码风格和约定
- 通过干式确保型号安全
- 验证参数要求和约束
- 测试误差条件和边缘情况
- 保持明确的关注点分离
许可证
该项目根据MIT许可证获得许可。请参阅 许可证 文件以获取详细信息。
