MoonGate MCP服务器
](https://www.npmjs.com/package/moongate-mcp-server) 
模型上下文协议(MCP)服务器 月亮之门 -具有零摩擦认证的Solana钱包。
该服务器使人工智能助手和Claude(通过API或Desktop)、OpenClaw和Cursor等工具能够与您的MoonGate钱包进行交互:
- 🔑 签署交易和消息
- 💸 发送令牌(SOL和SPL令牌)
- 📊 查看投资组合和余额
- 🔄 交换代币
- 🔐 基于OAuth的身份验证(谷歌/苹果)
快速开始
安装
npm install -g moongate-mcp-server配置
适用于克劳德桌面
添加到您的 ~/Library/Application Support/Claude/claude_desktop_config.json (macOS)或 %APPDATA%\Claude\claude_desktop_config.json (Windows):
{
"mcpServers": {
"moongate": {
"command": "npx",
"args": ["-y", "moongate-mcp-server"],
"env": {
"MOONGATE_API_URL": "https://wallet.moongate.one"
}
}
}
}对于光标
添加到光标MCP设置中:
{
"mcpServers": {
"moongate": {
"command": "npx",
"args": ["-y", "moongate-mcp-server"]
}
}
}适用于OpenClaw或自定义集成
使用MCP SDK以编程方式连接到服务器。看 MCP文件 有关客户端实现的详细信息。
认证
📖 看 作者指南.md 有关截图的详细说明。
太长,读不下去了 使用浏览器会话中的令牌(推荐):
- 登录 wallet.mooncote.one
- 打开DevTools→ 应用→ 本地存储
- 复制
token价值 - 将其添加到MCP配置中
MOONGATE_TOKEN
对于Claude Desktop:
{
"mcpServers": {
"moongate": {
"command": "npx",
"args": ["-y", "moongate-mcp-server"],
"env": {
"MOONGATE_TOKEN": "eyJhbGciOiJSUzI1NiIsInR5cCI6..."
}
}
}
}代币在7天后过期 -需要时,从浏览器中获取一个新的。
可用工具
get_wallet_address
获取您的MoonGate钱包的公钥(地址)。
// No parameters required退货:
{
"publicKey": "5xGj3..."
}______________________________________________________________________
sign_message
用你的钱包签名。
参数:
message(string | number\[\]):要签名的消息
退货:
{
"signature": "4vJ5a..."
}______________________________________________________________________
sign_transaction
签署Solana交易(可选择广播)。
参数:
serializedTransaction(number\[\]):序列化事务字节type(string):交易类型-“遗留”或“版本化”(默认:“版本化的”)broadcast(boolean):签名后是否广播(默认:false)includePayerSignature(boolean):包括付款人签名(默认值:true)
退货:
{
"signatures": ["..."],
"signedTransaction": [/* bytes */],
"txSignature": "3nZ4..." // if broadcast=true
}______________________________________________________________________
send_token
将SOL或SPL令牌发送到另一个地址。获取您的投资组合以解析代币、验证余额并使用正确的小数。
参数:
tokenMint(string):令牌造币厂地址(如果提供了tokenName/tokenSymbol,则可选)tokenName(string):在投资组合中搜索的代币名称(例如“Wrapped SOL”)tokenSymbol(字符串):在投资组合中搜索的代币符号(例如“SOL”、“USDC”)toAddress(string):收件人钱包地址amount(number):发送金额decimals(数字):代币小数(可选;从投资组合中自动提取)userWallet(string):可选-发件人地址(如果省略,则自动检测)
注: 提供至少一项 tokenMint, tokenName,或 tokenSymbol。该代币必须存在于您的投资组合中。
退货:
{
"success": true,
"signature": "2wE3..."
}______________________________________________________________________
get_portfolio
获取钱包投资组合(代币、余额、NFT)。
参数:
walletAddress(string):可选-要查询的钱包(默认为您的钱包)
退货:
{
"tokens": [...],
"totalValue": 1234.56,
"nfts": [...]
}______________________________________________________________________
search_token
按名称、符号或造币厂地址搜索Solana代币。返回按市值排序的顶级结果。
参数:
query(string):令牌名称(例如“Solana”)、符号(例如“SOL”)或造币厂地址limit(数字):返回的最大结果数(默认值:10,最大值:100)
退货:
{
"success": true,
"results": [
{
"mint": "So11111111111111111111111111111111111111112",
"name": "Wrapped SOL",
"symbol": "SOL",
"decimals": 9,
"price": "$86.46",
"marketCap": "52474839784",
"volume24h": "139815210",
"holders": 2877594,
"image": "https://..."
}
],
"count": 1
}______________________________________________________________________
swap_token
通过MoonGate DEX集成(Jupiter)交换代币。支持按名称/符号或薄荷地址搜索。
参数:
inputMint(string):输入令牌造币厂地址(如果提供inputToken,则可选)inputToken(string):输入代币名称/符号(例如“SOL”、“USDC”)-搜索薄荷outputMint(string):输出令牌薄荷地址(如果提供outputToken,则可选)outputToken(string):输出代币名称/符号(例如“SOL”、“USDC”)-搜索薄荷inputAmount(number):要交换的输入令牌数量slippagePercentage(数字):基点滑动公差(默认值:100=1%)transactionSpeed(string):优先级-“慢”、“正常”或“快”(默认值:“正常”)
注: 为每个令牌提供造币厂地址或名称/符号。名称/符号搜索按市值返回最高结果。
退货:
{
"success": true,
"signature": "4xK2...",
"transactionCount": 1,
"inputToken": "USDC",
"outputToken": "SOL",
"inputAmount": 100
}______________________________________________________________________
get_token_info
获取详细的代币信息,包括安全分析和ruggull风险指标。
参数:
tokenMint(string):令牌造币厂地址(如果提供了tokenName,则可选)tokenName(string):要搜索的令牌名称或符号
退货:
{
"token": {
"mint": "DezXAZ8z7PnrnRJjz3wXBoRgixCa6xjnB7YaB1pPB263",
"name": "Bonk",
"symbol": "BONK",
"decimals": 5,
"supply": 87995151415980.58,
"createdAt": 1670531612
},
"price": {
"usd": 0.00000646,
"marketCap": 568745265,
"circulatingMarketCap": 531283669
},
"security": {
"mintable": false,
"freezable": false,
"lockedLiquidityPercent": 75,
"topHoldersPercent": 33.56,
"devHoldersPercent": 0.000000166,
"snipersPercent": 0
},
"market": {
"liquidity": 178311,
"holders": 987817,
"buyCount24h": 5165,
"sellCount24h": 5630,
"buyerSentimentPercent": 47.85
},
"socialLinks": {
"website": "https://www.bonkcoin.com",
"twitter": "https://twitter.com/bonk_inu",
"telegram": "https://t.me/Official_Bonk_Inu"
},
"riskAssessment": {
"overallRisk": "LOW",
"riskIndicators": ["No major red flags detected"],
"safetyIndicators": [
"Good liquidity ($178.3K)",
"987,817 holders",
"Good distribution (top holders: 33.6%)",
"✓ Not mintable or freezable",
"75% liquidity locked",
"Has social media presence"
],
"recommendation": "✓ Appears relatively safe, but always DYOR (Do Your Own Research)"
}
}风险指标:
- 流动性: 低流动性(\50%表示存在集中风险
- 安全: 可铸造/可冻结代币可以被操纵
- 锁定流动性: \>MCP: Check ~/.moongate-mcp/session.json
alt Session exists & valid MCP->>MG: GET /api2/auth (refresh if needed) MG-->>MCP: Fresh token else No session or expired MCP->>Browser: Open localhost:8787 Browser->>Browser: User clicks Google/Apple Browser->>MG: OAuth verification MG-->>Browser: JWT token Browser->>MCP: Redirect with token MCP->>MCP: Save session.json end
MCP-->>User: Ready for tool calls
## 安全
- **会话存储**:令牌存储在 `~/.moongate-mcp/session.json` 随着 `0o600` 权限(仅限用户读/写)
- **自动刷新**:代币在到期后1小时内自动刷新
- **无密码签名**:根据MoonGate OAuth设计,所有签名操作都使用空密码
- **本地OAuth**:身份验证通过localhost回调进行,不公开凭据
## 路线图
- \[x\] 第一阶段:核心工具(获取地址、签署消息/tx)
- \[x\] 阶段2:OAuth浏览器流,发送令牌
- \[x\] 第3阶段:投资组合和掉期工具
- \[x\] 第四阶段:代币搜索和ruggull分析
- \[x\] 第五阶段:npm发布为 `moongate-mcp-server`
- \[\]第6阶段:NFT操作(列表、转移、造币)
- \[\]第7阶段:令牌元数据更新
- \[\]第8阶段:多钱包支持
## 故障排除
### “未通过身份验证”或“无效令牌”错误
您的令牌已过期(7天有效期)。买一个新鲜的:
1. 首选 [wallet.mooncote.one](https://wallet.moongate.one) 并登录
1. 打开DevTools→ 应用→ 本地存储→ `https://wallet.moongate.one`
1. 复制 `token` 价值
1. 更新 `MOONGATE_TOKEN` 在MCP配置中
1. 重新启动克劳德桌面/您的MCP客户端
### OAuth回调超时或“localhost:8787”无法加载
**解决方案:** 请改用手动令牌方法(请参阅上面的身份验证部分)。本地OAuth服务器需要端口8787可用,并且可能无法在沙盒环境中工作。
如果你需要OAuth:设置 `MOONGATE_CALLBACK_PORT` 连接到另一个端口,并确保其可访问。
### 调试日志
调试日志记录是 **默认启用**。要禁用它,请执行以下操作:
export MOONGATE_MCP_DEBUG=false
### MCP检验员测试
MCP检查器提供了一个web UI来测试您的服务器:
npx @modelcontextprotocol/inspector node dist/cli.js
这将打开一个浏览器,您可以在其中:
- 查看所有可用工具
- 使用表单UI进行测试工具调用
- 实时查看请求/响应日志
- 无需Claude Desktop即可调试
## 贡献
欢迎投稿!请打开问题或PR。
## 许可证
麻省理工学院
## 链接
- [MoonGate网站](https://moongate.one)
- [MoonGate文档](https://docs.moongate.one)
- [模型上下文协议](https://modelcontextprotocol.io)
-
______________________________________________________________________
**建于❤️ 索拉纳生态系统**