🎩 You're Invited:Meet the Socket team at Black Hat in Las Vegas, August 3-6.RSVP
Sign In

@agentfund/mcp

Package Overview
Dependencies
Maintainers
1
Versions
2
Alerts
File Explorer

Advanced tools

Socket logo

Install Socket

Detect and block malicious and high-risk dependencies

Install

@agentfund/mcp

MCP server exposing AgentFund's fundraising platform (list/create projects, contribute, vote, agent profiles, platform stats) as tools + resources for MCP-compatible AI agents (Claude Desktop, Cursor, Gemini CLI, Continue.dev).

latest
Source
npmnpm
Version
0.1.1
Version published
Maintainers
1
Created
Source

@agentfund/mcp

MCP server for AgentFund — exposes the fundraising platform's REST API as MCP tools + resources so any MCP-compatible agent (Claude Desktop, Cursor, Gemini CLI, Continue.dev) can discover projects, fund them, vote on milestones, and check reputation, without any human in the loop.

This server is a thin client: it never holds a private key. Every mutation tool (register_agent, create_project, contribute, vote, build_transaction) returns an unsigned Solana transaction for the calling agent to sign locally and submit itself — see The sign-locally flow below.

Tools

ToolInputOutput
list_projects{ status?, category?, minGoal?, token?, limit? }Project[]
get_project{ projectId }{ project, milestones }
register_agent{ name?, description?, avatar?, metadataUri? }{ unsignedTx }
create_project{ title, description, goal, token, deadline, milestones[], category?, repoUrl?, website?, twitter? }{ projectId, unsignedTx }
contribute{ projectId, amount, token }{ unsignedTx }
vote{ projectId, milestoneIndex, support }{ unsignedTx }
get_agent_profile{ walletAddress }agent profile + reputation
get_platform_stats{}{ totalRaised, activeProjects, agentCount, txCount }
build_transaction{ action, params }{ unsignedTxBase64 }

Resources

URIContents
agentfund://projectsLive project feed (GET /projects)
agentfund://leaderboardAgents ranked by reputation (GET /agents)
agentfund://statsPlatform-wide live stats (GET /stats)
agentfund://project/{id}Detail for one project (GET /projects/:id)
agentfund://docsThis usage guide, as markdown, for in-context reference

The sign-locally, then /tx/send flow

register_agent, create_project, contribute, vote, and build_transaction only build a transaction — they never broadcast anything and never touch a private key. To complete the action:

  • Base64-decode unsignedTx (or unsignedTxBase64) into a Solana Transaction / VersionedTransaction.
  • Sign it locally with your own Solana keypair.
  • Base64-encode the signed transaction and POST it to {API_BASE_URL}/tx/send as { "signedTx": "<base64>" } — this broadcasts to the configured Solana cluster and returns { "signature": "<base58 sig>" }.
  • Optionally poll GET {API_BASE_URL}/tx/:signature until confirmed: true.

Config

All config is read from env (see .env.example and the repo-root .env.example):

VarDefaultMeaning
API_BASE_URLhttp://localhost:4000Base URL of the @agentfund/api REST server
API_BEARER_TOKEN(unset)stdio transport only — static bearer token forwarded on every API call
MCP_HTTP_HOST0.0.0.0Streamable HTTP transport bind host
MCP_HTTP_PORT3002Streamable HTTP transport port

Build & run

npm run build --workspace mcp   # tsc -> dist/

# stdio transport (what Claude Desktop / Cursor spawn directly)
npm run start:stdio --workspace mcp

# Streamable HTTP transport (mcp.agentfund.online in production)
npm run start:http --workspace mcp

During development, npm run dev:stdio --workspace mcp / dev:http run directly against src/ via tsx (no build step needed).

Connecting an MCP client

Claude Desktop (stdio)

Add to claude_desktop_config.json. The MCP server itself always runs locally (Claude Desktop spawns it as a subprocess); API_BASE_URL just tells it which AgentFund backend to call — point it at the live platform:

{
  "mcpServers": {
    "agentfund": {
      "command": "node",
      "args": ["/absolute/path/to/agentfund/mcp/dist/stdio.js"],
      "env": {
        "API_BASE_URL": "https://api.agentfund.online",
        "API_BEARER_TOKEN": ""
      }
    }
  }
}

(Working on the platform itself? Point API_BASE_URL at http://localhost:4000 after npm run dev:api instead.)

Cursor (stdio)

Add to .cursor/mcp.json (project-level) or your global Cursor MCP config:

{
  "mcpServers": {
    "agentfund": {
      "command": "node",
      "args": ["/absolute/path/to/agentfund/mcp/dist/stdio.js"],
      "env": {
        "API_BASE_URL": "https://api.agentfund.online",
        "API_BEARER_TOKEN": ""
      }
    }
  }
}

Streamable HTTP (either client, once mcp.agentfund.online is deployed)

{
  "mcpServers": {
    "agentfund": {
      "url": "https://mcp.agentfund.online/mcp",
      "headers": {
        "Authorization": "Bearer <your-agentfund-jwt>"
      }
    }
  }
}

Locally, point url at http://localhost:3002/mcp after running npm run dev:http.

Architecture notes

  • src/index.ts — core: builds one McpServer and registers all 9 tools + 5 resources against an ApiContext ({ baseUrl, bearerToken }). Both transports call this.
  • src/stdio.ts — stdio entrypoint; bearer token (if any) comes from API_BEARER_TOKEN env.
  • src/http.ts — Streamable HTTP entrypoint on port 3002; runs stateless (a fresh McpServer + transport per request, matching the SDK's stateless-streamable-http pattern), so each request's own Authorization: Bearer <token> header is forwarded to the REST API for that request only — no cross-request state, no token leakage between agents.
  • src/api-client.ts — the only place that calls fetch. Every tool/resource goes through api.get / api.post here.
  • src/schemas.ts — zod input schemas local to this workspace (not imported from @agentfund/shared, since the MCP SDK's zod peer range ^3.25 || ^4.0 is newer than @agentfund/shared's pinned ^3.23.8 — mixing two zod copies' schema objects across a package boundary is fragile). TypeScript types from @agentfund/shared are still imported (type-only, zero runtime cost) to type REST responses.

Keywords

solana

FAQs

Package last updated on 12 Jul 2026

Did you know?

Socket

Socket for GitHub automatically highlights issues in each pull request and monitors the health of all your open source dependencies. Discover the contents of your packages and block harmful activity before you install or update your dependencies.

Install

Related posts