Official Solana MCP Server
OfficialOfficial Solana MCP Server
Try it out at https://mcp.solana.com !
The official Solana Developer MCP. Purpose: serve up-to-date documentation across the Solana ecosystem to AI agents and developer tooling.
Architecture
Ingestion (
ingestion/): Databricks notebook crawls the sources listed iningestion/sources.yaml, chunks markdown, and writes embeddings into a Delta-backed Vector Search index.Retrieval (
lib/services/databricks/): MCP tools query the index via the Databricks managed AI Search MCP server, which retrieves and reranks results server-side.get_documentationfalls back to a SQL read of thedocs_chunksDelta table when a source has no publishedllms.txt.Server (
lib/index.ts,server/cloudrun.ts): Exposes five tools over MCP —Solana_Expert__Ask_For_HelpandSolana_Documentation_Search(semantic RAG),list_sectionsandget_documentation(canonical-spec retrieval modelled after the Svelte AI server), andprogram_autofixerfor Anchor and Pinocchio Solana program Rust checks. Deployed on Cloud Run as a containerised Node service frontingmcp.solana.com; calls the Databricks workspace REST API directly for retrieval.Section catalogue (
ingestion/sources.yaml→lib/sources.generated.ts):pnpm gen:sourcesemits a typed catalogue of every source, its tags from a closed 21-section taxonomy, anduse_caseskeywords used bylist_sectionsto route the agent.Analytics (
lib/services/s3/analytics.ts): Tool calls + initializations are buffered in memory and uploaded as JSONL objects to the S3 prefix configured byANALYTICS_S3_URI.
Local Development
pnpm install
cp .env.example .env # set DATABRICKS_HOST + DATABRICKS_TOKEN + DATABRICKS_VS_INDEX
pnpm dev:local
pnpm inspector # connects MCP Inspector at http://127.0.0.1:6274Deploy
Production runs on Cloud Run (mcp.solana.com → server/cloudrun.ts, built via the root Dockerfile). Push to main triggers .github/workflows/deploy-cloudrun.yml, which submits a Cloud Build and rolls the new revision. Runtime env vars (DATABRICKS_HOST, DATABRICKS_TOKEN, DATABRICKS_VS_INDEX, DATABRICKS_WAREHOUSE_ID, ANALYTICS_S3_*, AWS_*) and deploy config (GCP_*, VPC_CONNECTOR) are loaded from the Doppler prd_github config at deploy time.
The Databricks side (databricks.yml) deploys two resources via just deploy:
the daily ingestion job (
crawl_and_index.pynotebook) — crawls sources, MERGEs into Delta, syncs the Vector Search index;the Lakeview dashboard. Analytics source files land in S3 and require downstream ingestion before dashboard consumption.
Per-environment values (catalog, warehouse, index) live in the gitignored prod.yml (see template inline in databricks.yml).
just deploy # builds, pushes ingestion job + dashboardEvals
Per-environment values (catalog, warehouse, index) live in the gitignored prod.yml; supply each variable listed under variables: in databricks.yml.