Metis RWA Research

io.github.metis-rwa由 GitHub 帳號 metis-rwa 發布v0.1.1更新於 Oct 24, 2026

Research tokenized real-world assets on Solana: issuer controls, supply, liquidity, premiums

已驗證Streamable HTTP可網頁執行金融資料與分析

概覽

AI 產生的概覽

Metis RWA Research 讓助理研究 Solana 上的代幣化實體資產:發行方控制權、供給量、持有人、流動性與溢價。

可以做什麼
依代號或類型列出並篩選內建的代幣化資產清冊,也可直接用 Solana mint 位址取代代號。讀取鏈上代幣狀態:鑄造、凍結、扣押、暫停與轉帳限制等控制權,供給量與上限,持有人集中度與凍結餘額。讀取市場狀態:逐一資金池的流動性,以及相對於所追蹤參考證券的溢價。執行完整觀察週期,將最新讀取與已存歷史比對,回報偵測結果、資料來源衝突與信心程度。瀏覽已發布研究:列出出版物、開啟單篇查看其主張、證據與方法,了解正在調查的內容並檢查資料來源健康度。使用內建的盡職調查與價格提示詞。
適用情境
當你需要回答 Solana 上某個代幣化股票或基金由誰控制、這種控制對持有人代表什麼,或在形成判斷前查核供給量、集中度、流動性與溢價時使用。託管端點適合單次提問;本機套件適合搭配自己的 RPC 端點與歷史做持續觀察。
執行需求
可使用託管 HTTP 端點(免金鑰、唯讀、無工作階段),或透過 stdio 執行本機 npm 套件(需 Node.js)。選用環境變數:SOLANA_RPC_URL(建議使用專用端點)、METIS_API_URL、METIS_ASSETS_FILE、METIS_MCP_STATE_DIR 與 METIS_MCP_TIMEOUT_MS。需要連線至 Solana、DEX 場所與價格服務的網路。
安裝前請注意
唯讀研究,但僅供參考且可能出錯,不構成財務建議。METIS_ASSETS_FILE 中錯誤的 mint 位址會給出自信但錯誤的答案,務必先在鏈上核實。最大的代幣帳戶是帳戶而非實際受益人。DexScreener 拒絕資料中心流量,在雲端主機上資金池資料會降級。參考價格在非交易時段可能過期,看起來像溢價。觀察歷史預設儲存在本機。

安裝

在 SourceWeft 中

  1. 開啟 儀表板中的 Metis RWA Research,將其新增到工作區。
  2. 為需要使用其工具的對話啟用該服務。

Web executable,透過 Streamable HTTP。 遠端服務在工作區中設定後即可從網頁執行環境執行。

交給代理程式安裝

把這段提示詞貼上到 Claude Code、Codex、Cursor 等代理程式,或 SourceWeft 對話中。代理程式會讀取該伺服器的安裝指南,先向你展示發布者、端點和登入方式,經你同意後再把它新增到你的客戶端。金鑰不會寫進任何命令。

閱讀 https://sourceweft.com/mcp/io.github.metis-rwa%2Fmcp/install.md,並按其中說明把這個 MCP 伺服器接入我的客戶端。修改任何設定之前,先告訴我它的發布者、端點和登入方式,等我確認。不要把 API 金鑰寫進命令或我會提交的檔案;問我金鑰應從哪裡取得。

檢視代理程式所依據的安裝指南

其他 MCP 客戶端

把它新增到你客戶端的 mcpServers 設定中。

{
  "mcpServers": {
    "metis-rwa-research": {
      "type": "http",
      "url": "https://metisagent.co/mcp"
    }
  }
}

README

Metis MCP

An MCP server for researching tokenized real-world assets on Solana.

It gives an assistant twelve tools: six that read chain and market state live, and six that reach the research the Metis agent has already published. Every figure it returns comes from a fresh read, stamped with its source, the time it was taken, and a hash of the raw payload.

The point is the first question anyone should ask about a tokenized asset and almost nobody can answer quickly: who controls this token, and what happens to my position if they use that control?

Three ways to connect

As a plugin. The easiest path, and the only one that also carries the skills. In Claude Code:

/plugin marketplace add metis-rwa/mcp
/plugin install metis@metis-rwa

In Claude Desktop or on the web, open Customize, then Plugins, then add from a repository with https://github.com/metis-rwa/mcp.git. The plugin connects to the hosted endpoint and adds /metis:due-diligence, /metis:premium-watch, and a token-safety skill that runs whenever someone asks who controls a token. See plugin/README.md.

Hosted, nothing to install. The same tools are served over HTTP at https://metisagent.co/mcp:

bash
claude mcp add --transport http metis https://metisagent.co/mcp

The hosted endpoint answers observation questions from the research agent's own stored history, which goes back further than any single machine can. It reads only, needs no key, and holds no session.

Local, over stdio. Run the package when you want your own RPC endpoint, your own asset list, or history kept on your machine:

bash
npx -y @metisagent/mcp

Or clone and build:

bash
git clone https://github.com/metis-rwa/mcp.gitcd mcpnpm installnpm run buildnode dist/index.js

The server speaks MCP over stdio.

Connect the local server

Claude Code:

bash
claude mcp add metis -- npx -y @metisagent/mcp

Claude Desktop, in claude_desktop_config.json:

json
{  "mcpServers": {    "metis": {      "command": "npx",      "args": ["-y", "@metisagent/mcp"],      "env": {        "SOLANA_RPC_URL": "https://your-endpoint.example/rpc"      }    }  }}

Any other MCP client works the same way: run metis-mcp (or node dist/index.js) and speak MCP on stdin and stdout.

Tools

On-chain checks:

ToolWhat it answers
list_rwa_assetsWhich assets this server knows by symbol, and their mints
get_token_controlsCan the issuer mint, freeze, seize, pause, or gate transfers
get_token_supplyHow many tokens exist, and whether supply is capped
get_holder_concentrationWho holds the supply, and is any of it frozen
get_token_marketHow deep the liquidity is, pool by pool
get_reference_premiumIs the token trading away from the security it tracks

Research:

ToolWhat it answers
observe_assetOne full research cycle: read everything, compare against history, report detections and confidence
get_observation_historyWhat this server has recorded for the asset so far, and the trend
list_researchWhat the Metis agent has published, filtered by asset or category
get_researchThe full object behind one publication: claims, evidence, methodology, provenance
get_research_statusWhat the agent is investigating right now, and source health
check_sourcesWhich data sources are answering, and how fast

Every tool takes either a registry symbol (TSLAx) or a raw Solana mint address, so assets outside the registry work too.

The registry ships with the 72 xStocks on Solana, from AAPLx through XOMx, including the index and commodity fund shares (SPYx, QQQx, GLDx, PPLTx, TBLLx) and the private-market listings (SPCXx, VCXx). Filter it with list_rwa_assets, by substring or by asset type.

Two prompts ship with the server: rwa_due_diligence walks an asset through controls, supply, concentration, depth, and premium, and premium_watch reads a price gap against stored history. Two resources are exposed as well: metis://registry and metis://methodology.

What get_token_controls is for

A tokenized equity is a claim on something held off chain, so the issuer keeps powers a plain token does not have. Token-2022 makes those powers explicit on the mint, and this tool translates each one into what it means for a holder:

  • Permanent delegate: tokens can be moved or burned out of any account without the holder signing.
  • Freeze authority: any account can be frozen, which blocks selling and redemption.
  • Transfer hook: every transfer runs through a program that can reject it, which is how an allowlist is enforced.
  • Default account state frozen: new accounts cannot transact until the issuer thaws them, so the token is permissioned by default.
  • Pausable: transfers can be halted chain-wide.
  • Scaled UI amount: displayed balances are rescaled, which is how splits and similar corporate actions land on chain.

None of these are defects. Redeemable backed assets need most of them. They are simply facts about the asset that belong in any answer about whether it is worth its reference price.

Configuration

VariableDefaultPurpose
SOLANA_RPC_URLa public nodeSolana JSON-RPC endpoint
METIS_API_URLhttps://metisagent.coMetis research API
METIS_ASSETS_FILEnoneJSON file of extra assets to register
METIS_MCP_STATE_DIR~/.metis-mcpWhere observation history is stored. Set to off for memory only
METIS_MCP_TIMEOUT_MS20000Network timeout per request

Set SOLANA_RPC_URL to an endpoint you control if you can. Public nodes throttle the heavier reads, and get_holder_concentration is the first one they refuse.

METIS_ASSETS_FILE takes an array. Only symbol and mint are required:

json
[  {    "symbol": "AAPLx",    "name": "Apple xStock",    "mint": "<mint address>",    "decimals": 8,    "assetType": "tokenized_equity",    "referenceTicker": "AAPL",    "issuerName": "Backed Assets"  }]

Verify a mint against the chain before adding it. A wrong address returns confident, wrong answers. Everything already in the registry was read back from Solana first: the names and symbols in src/assets.ts are the ones written into each mint's own Token-2022 metadata, not labels copied from a token list. Check them again at any time:

bash
npm run verify-assets

How an observation cycle works

observe_asset reads supply and holder concentration from Solana, pooled liquidity and volume from DEX venues, and the token and reference prices from a public price service. It compares the result against the observations already stored for that asset, then reports:

  • Observations: what is true right now, each tied to the reads behind it.
  • Detections: metrics that crossed a threshold, with the baseline they crossed it against.
  • Conflicts: sources that disagree, recorded rather than averaged away.
  • Confidence: computed from source coverage, source failures, cross-source agreement, and how much history backs the comparison. A model's own stated confidence is never an input.

History lives on the machine running the server. The first call on an asset has no baseline, so only the premium threshold can fire. Call it again over time and supply, liquidity, activity, and concentration detections come alive. The hosted endpoint skips that warm-up entirely: it compares against the history the research agent has been recording every ten minutes since it went live.

Limits worth stating

  • Largest token accounts are accounts, not beneficial owners. Pools, bridges, and custodial accounts sit at the top of most lists.
  • DexScreener refuses datacenter traffic. Run the server from a laptop and it answers; run it from a cloud host and pool data falls back to the price service, which reports liquidity, 24h volume, and a holder count but no pool breakdown and no transaction counts. Tools say when a number came from the standby.
  • A republished reference price can be stale outside market hours, and that alone can look like a premium.
  • Aggregated venue data covers listed pools. Anything traded over the counter or internally is invisible here.
  • This is informational research produced by software. It is not financial advice, and it can be wrong.

Development

bash
npm installnpm run typechecknpm testnpm run inspector

Tests cover the analysis rules, the control translations, the registry, and the history store. They run against the build, so npm test builds first.

Releasing

The package publishes to npm as @metisagent/mcp, and server.json describes it for the MCP registry. The registry proves ownership by matching mcpName in package.json against the server name in server.json, so those two strings have to stay in step.

  1. Bump the version in package.json and in both places in server.json, then add a CHANGELOG.md entry.
  2. npm run verify-assets to confirm the registry still matches the chain.
  3. npm test.
  4. npm publish --access public.
  5. mcp-publisher login github then mcp-publisher publish to list the release in the MCP registry.

License

MIT

來源:README.md,提交 c3a0cb9

工具

0
SourceWeft 尚未讀取此伺服器的工具。

版本歷史

1
  1. v0.1.1最新Sep 16, 2026

評分

已滿足適用檢查項的 50%

該評分衡量此收錄條目的完整程度,依據註冊中心條目、端點與公開來源計算得出。它不是對伺服器本身的評價,也不表示伺服器安全或目前可用:可連通性是帶日期的檢查結果,評分也不包含安裝量或使用者評價。

  • 近 30 天內可連通必需25 分

    請保持端點能夠回應 MCP 握手;SourceWeft 每 30 天探測一次。

  • 已宣告認證方式必需10 分

    請在註冊中心條目中宣告憑證請求標頭,或保持端點能夠回應探測,以便判定其認證方式。

  • 已列出工具15 分

    請讓伺服器在無憑證時回應 tools/list,或發布可在沙箱中無憑證啟動的軟體包。

  • 描述必需15 分
  • 圖示10 分
  • 文件15 分
  • 授權條款10 分