](https://smithery.ai/server/@SerPepe/bera-mcp)
Bera MCP服务器🐻
您友好的熊伙伴Berachain发展!
Bera MCP是一个功能强大的模型上下文协议(MCP)服务器,它使AI代理能够即时访问整个Berachain生态系统。使用RAG(检索增强生成)构建,就像有一只知识渊博的熊在你身边,它永远不会忘记蜂蜜在哪里——或者在这种情况下,所有文档都在哪里!
无论您是在构建DeFi协议、集成预言机还是部署智能合约,Bera MCP都能帮助您更快地找到答案,而不是说“亲爱的!”🍯
什么是Bera MCP?
Bera MCP是你所有事情的首选伴侣。它是一个智能文档助手,可以:
- 🐻 咆哮着Berachain生态系统:自动索引并更新Berachain官方文档和指南
- 🍯 找到最甜蜜的答案:使用AI支持的语义搜索来理解您的问题并找到最相关的文档
- 📚 永远不要忘记:将所有内容存储在矢量数据库中,以便它可以立即回忆信息
- 🔄 保持新鲜:新文档发布时自动更新
Bera能帮你什么?
在Berachain上建造时,Bera MCP有你的背部(和前部):
- 🏗️ 智能合约开发:获取有关合同模式、最佳实践和Berachain特定功能的即时答案
- 💎 DeFi集成:了解如何与Berachain的DeFi协议和令牌标准集成
- 🔮 Oracle集成:学习如何在Berachain上使用Python、Chainlink和其他神谕
- 🚀 部署指南:部署和管理合同的分步说明
- 🧪 测试与调试:测试Berachain应用程序的最佳实践
- 📖 API参考资料:快速访问函数签名、参数和返回值
- 🎯 以及其他与比拉钦有关的一切!
只要问Bera任何问题,它都会仔细阅读文档,为您找到完美的答案!
特性🐻
Bera配备了强大的功能,使您的Berachain开发之旅更加顺利:
- 🐻 向导工具(
ask_berachain)贝拉的超能力!用简单的英语问任何问题,并通过完整的代码示例获得全面的、人工智能驱动的答案。这就像有一个Berachain的快速拨号专家! - 🔍 语义搜索(
search_docs):使用自然语言搜索所有文档。不需要知道确切的关键字——自然地问就行了! - 📄 文档检索(
get_doc_section):需要一个特定的部分吗?Bera确切地知道所有东西的存储位置,并且可以立即提取。 - 🔄 自动更新:Bera会自动保持最新状态!它监视Berachain仓库,并在发布时为新文档编制索引。
- 📚 自定义文档:将您自己的markdown文件添加到
docs/目录,Bera也会为它们建立索引。非常适合团队特定指南或自定义集成!
先决条件
- Node.js 18+和npm
- OpenRouter API密钥(用于嵌入和LLM)
- Uptash矢量帐户(用于矢量存储)
安装
1.克隆存储库
git clone
cd bera-mcp2.安装依赖项
npm install3.设置环境变量
创建一个 .env 根目录中的文件:
OPENROUTER_API_KEY=your_openrouter_api_key_here
UPSTASH_VECTOR_REST_URL=your_upstash_vector_url_here
UPSTASH_VECTOR_REST_TOKEN=your_upstash_vector_token_here
LLM_MODEL=google/gemini-2.5-flash-preview-09-2025所需的环境变量:
OPENROUTER_API_KEY:用于嵌入和LLM生成的OpenRouter API密钥UPSTASH_VECTOR_REST_URL:您的Upstash Vector REST API URLUPSTASH_VECTOR_REST_TOKEN:您的Upstash Vector REST API令牌
可选环境变量:
LLM_MODEL:用于生成答案的LLM模型(默认值:google/gemini-2.5-flash-preview-09-2025)CHUNK_SIZE:用于索引的文档块大小(默认值:1000)CHUNK_OVERLAP:块之间的重叠(默认值:200)TOP_K:搜索结果数(默认值:5)
4.设置上升矢量
- 在以下网址创建帐户 上架
- 创建新的矢量数据库
- 使用以下设置进行配置:
- 类型: Dense - 嵌入模型: Custom - 维度: 3072 - 指标: COSINE
- 将REST URL和令牌复制到您的
.env文件
5.构建和索引
npm run build
npm run index索引器将:
- 下载Berachain文档和指南存储库
- 处理所有标记文件
- 生成嵌入
- 将所有内容存储在Uptash Vector数据库中
备注:根据文档大小,首次索引可能需要10-20分钟。
6.启动服务器
npm start服务器在stdio上运行,并已准备好接受MCP客户端连接。
在Cursor中安装
由于Bera MCP使用您自己的API密钥(OpenRouter和Upstash),您需要自己托管它。以下是如何在Cursor中设置它:
选项1:本地安装(推荐)
- 克隆并设置服务器 (按照上述安装步骤操作)
- 添加到Cursor的MCP设置 (
~/.cursor/mcp.json或光标设置→ 特性→ 模型上下文协议):
{
"mcpServers": {
"bera-mcp": {
"command": "node",
"args": ["/absolute/path/to/bera-mcp/dist/cli.js"],
"env": {
"OPENROUTER_API_KEY": "your_key_here",
"UPSTASH_VECTOR_REST_URL": "your_url_here",
"UPSTASH_VECTOR_REST_TOKEN": "your_token_here"
}
}
}
}- 重新启动游标 加载MCP服务器
选项2:部署到Smithery(建议用于生产)
Bera MCP已配置为使用TypeScript运行时进行Smithery部署。这 smithery.yaml 文件已设置。
- 将您的存储库推送到GitHub (确保
.env在...里.gitignore!)
- 部署到Smithery:
- 首选 史密瑟里 - 登录并连接您的GitHub帐户 - 点击“创建服务器”或“新部署” - 选择您的 bera-mcp 仓库 - Smithery将自动检测 smithery.yaml 配置
- 配置服务器设置:
- 在Smithery仪表板中,转到服务器的设置 - 添加以下配置值: - openrouterApiKey:您的OpenRouter API密钥 - upstashUrl:您的Uptash矢量REST URL - upstashToken:您的Uptash Vector REST令牌 - llmModel:可选-LLM型号名称(默认值: google/gemini-2.5-flash-preview-09-2025) - 这些将被安全地存储并传递到您的服务器
- 部署:
- 单击Smithery仪表板中的“部署” - Smithery将自动构建和部署您的服务器 - 等待部署完成(通常为2-5分钟)
- 索引文档 (仅限第一次):
- 部署后,您需要运行一次索引器来填充向量数据库 - 您可以在本地执行此操作,也可以设置一次性索引作业 - 运行: npm run index (这需要你 .env 带有API密钥的文件)
- 从游标连接:
- 在光标中,转到设置→ 特性→ 模型上下文协议 - 使用Smithery连接URL添加新的MCP服务器 - URL格式为: https://server.smithery.ai/your-server/mcp - 在连接设置中使用API密钥进行配置
备注:服务器配置架构是从自动生成的 configSchema 在 src/index.ts,因此Smithery将在连接时显示一个用于输入API密钥的表单。
MCP工具
ask_berachain 🐻
询问有关Berachain开发问题的主要向导工具。
参数:
question(必填):您关于比拉钦的问题maxContextChunks(可选):要使用的文档块数(默认值:5)
例子:
{
"question": "How do I integrate Pyth oracles on Berachain?",
"maxContextChunks": 5
}退货: 包含代码示例、来源和引用的综合答案。
search_docs 🔍
在所有Berachain文档中进行语义搜索。
参数:
query(必填):搜索查询topK(可选):结果数量(默认值:5)
例子:
{
"query": "HONEY token oracle price",
"topK": 3
}退货: 包含分数和元数据的相关文档块数组。
get_doc_section 📄
按文件路径检索特定文档节。
参数:
filePath(必填):相对文件路径(例如。,"PYTH_ORACLES_BERACHAIN.md")repo(必填):存储库名称("docs","guides",或"local")
例子:
{
"filePath": "PYTH_ORACLES_BERACHAIN.md",
"repo": "local"
}退货: 指定文件中的所有块,按顺序排序。
添加自定义文档
将标记文件放置在 docs/ 目录。它们将在下一次自动索引 npm run index 跑。
例子:
mkdir -p docs
cp your-guide.md docs/
npm run index更新文档
要更新索引文档,请执行以下操作:
npm run index这将:
- 从中提取最新更改
berachain/docs和berachain/guides - 重新索引所有文档
- 更新您的矢量数据库
项目结构
bera-mcp/
├── src/
│ ├── cli.ts # MCP server entry point
│ ├── server.ts # MCP server setup
│ ├── config.ts # Configuration management
│ ├── indexer.ts # Indexing pipeline
│ ├── indexer-cli.ts # CLI for indexing
│ ├── downloader.ts # Git repository downloader
│ ├── processor.ts # Markdown processing and chunking
│ ├── embeddings.ts # Embedding generation
│ ├── vectorStore.ts # Upstash Vector integration
│ └── tools/
│ ├── query.ts # ask_berachain wizard tool
│ └── search.ts # search_docs and get_doc_section tools
├── docs/ # Custom documentation (auto-indexed)
├── data/ # Downloaded repositories (gitignored)
├── dist/ # Compiled output (gitignored)
└── .env # Environment variables (gitignored)安全说明
⚠️ 重要:永远不要承诺你的 .env 文件或API密钥到版本控制!
这 .gitignore 文件配置为排除:
.env以及所有环境文件data/目录(已下载的存储库)node_modules/dist/(编译代码)
部署时始终使用环境变量或安全密钥管理。
故障排除
“OPENROUTER_API_KEY环境变量是必需的”
确保你的 .env 文件存在并包含 OPENROUTER_API_KEY.
“需要UPSTASH_VECTOR_REST_URL和UPSTASH_WECTOR-REST_TOKEN环境变量”
设置Uptash Vector数据库并将凭据添加到 .env.
索引失败或耗时过长
- 检查您的OpenRouter API密钥是否有足够的信用
- 验证您的Uptash Vector数据库是否可访问
- 检查下载存储库的网络连接
MCP服务器未在Cursor中连接
- 验证中的路径
mcp.json绝对正确 - 检查一下
npm run build已成功完成 - 确保在Cursor的MCP配置中设置了环境变量
- 配置更改后重新启动Cursor
许可证
麻省理工学院
贡献
欢迎投稿!请确保:
- 所有代码都是正确类型的(TypeScript)
- 记录环境变量
- 遵循安全最佳实践
- 为新功能添加了测试
支持
有问题吗?被什么东西卡住了?贝拉是来帮忙的!
- 🐛 发现bug了吗? 在GitHub上打开一个问题
- 💡 有主意吗? 我们很想听听!
- 🤝 想贡献吗? 拉取请求总是受欢迎的!
______________________________________________________________________
内置🍯 Berachain开发者社区 🐻
*愿您的合同顺利执行,您的蜂蜜自由流动!*
