ionclaw-org/ionclaw/mcp-client

Claude Code and agent skill by ionclaw-org/ionclaw

Trust tier 3
  • community
Source check pending

Checking that the SKILL.md file is still in the repository.

Connect to external MCP servers to use their tools and read their resources. Use when the user wants to interact with a remote MCP-compatible service (e.g. another IonClaw instance, a database MCP server, a filesystem MCP server, or any third-party MCP server).

Install

npx vskill@latest install ionclaw-org/ionclaw/mcp-client

SKILL.md

MCP Client

Use the mcp_client tool to connect to external MCP servers and interact with their tools and resources using the Model Context Protocol (Streamable HTTP transport).

Tool: mcp_client

Workflow

Every interaction follows the same pattern:

  1. Initialize — connect to the server (may return a session ID)
  2. Use — list tools, call tools, list resources, read resources
  3. Close — end the session when done

If initialize returns a session_id, pass it to all subsequent calls. Some servers are stateless and return an empty session ID — in that case, omit it.

Actions
ActionDescription
initializeConnect to the MCP server and negotiate a session
list_toolsList all tools available on the remote server
call_toolCall a specific tool on the remote server
list_resourcesList available resources on the remote server
read_resourceRead a specific resource by URI
pingCheck if the server is alive
closeClose the MCP session
Parameters
ParameterTypeRequiredDescription
actionstringYesAction to perform
urlstringYesMCP server endpoint URL
session_idstringNoMCP session ID from initialize (if server provides one)
auth_tokenstringNoBearer token for authenticated servers
tool_namestringcall_toolName of the tool to call
tool_argumentsobjectNoArguments for the tool call
resource_uristringread_resourceURI of the resource to read
timeoutintegerNoRequest timeout in seconds (default: 30)

Examples

Connect to a local MCP server
mcp_client(action="initialize", url="http://localhost:8080/mcp")

Returns:

json
{
"session_id": "abc-123-def",
"protocol_version": "2025-03-26",
"server_info": {"name": "IonClaw", "version": "1.0.0"},
"capabilities": {"tools": {"listChanged": false}}
}
Connect with authentication
mcp_client(action="initialize", url="http://localhost:8080/mcp", auth_token="your-bearer-token")
List available tools
mcp_client(action="list_tools", url="http://localhost:8080/mcp", session_id="abc-123-def")
Call a remote tool
mcp_client(action="call_tool", url="http://localhost:8080/mcp", session_id="abc-123-def", tool_name="chat", tool_arguments={"message": "Hello, what can you do?"})
List resources
mcp_client(action="list_resources", url="http://localhost:8080/mcp", session_id="abc-123-def")
Read a resource
mcp_client(action="read_resource", url="http://localhost:8080/mcp", session_id="abc-123-def", resource_uri="ionclaw://agents")
Ping the server
mcp_client(action="ping", url="http://localhost:8080/mcp", session_id="abc-123-def")
Close the session
mcp_client(action="close", url="http://localhost:8080/mcp", session_id="abc-123-def")

Complete workflow example

A typical session looks like this:

# 1. connect
mcp_client(action="initialize", url="http://localhost:9090/mcp")
# → session_id: "abc-123"
# 2. discover what the server offers
mcp_client(action="list_tools", url="http://localhost:9090/mcp", session_id="abc-123")
# → tools: [{name: "query_db", ...}, {name: "insert_record", ...}]
# 3. use a tool
mcp_client(action="call_tool", url="http://localhost:9090/mcp", session_id="abc-123", tool_name="query_db", tool_arguments={"sql": "SELECT * FROM users LIMIT 5"})
# → {tool: "query_db", text: "...", isError: false}
# 4. read a resource
mcp_client(action="read_resource", url="http://localhost:9090/mcp", session_id="abc-123", resource_uri="myapp://schema/users")
# → {uri: "myapp://schema/users", text: "..."}
# 5. close when done
mcp_client(action="close", url="http://localhost:9090/mcp", session_id="abc-123")
# → {status: "closed"}

Tips

  • Always call initialize first to negotiate the protocol version and capabilities.
  • If the server returns a session_id, pass it to all subsequent calls. If it returns empty, omit it.
  • Use list_tools to discover what the remote server can do before calling tools.
  • The session_id is specific to one server — if you connect to multiple servers, track each session ID separately.
  • Use auth_token when the server requires authentication (Bearer token).
  • For long-running tool calls, increase the timeout parameter.
  • Always close the session when you are done to free server resources.
  • The tool uses the MCP Streamable HTTP transport (JSON-RPC 2.0 over HTTP POST).

Security

  • Security scanPassed, 95 of 100Pattern checks on the skill's files.
  • Model reviewPassed

Quality evaluation

  • Task evaluationNot runNo evaluation yet. Run one in Skill Studio.

Source

Popularity

Repository stars
69
Repository forks
14
7-day trend score
21

Stars and forks are for the whole GitHub repository, not this skill alone. Refreshed 28 Jun 2026, 4 months ago.

Works with

Any agent vskill installs to: 56 targets in all. These 39 have a page on this site.

  • Claude Code
  • Cursor
  • GitHub Copilot
  • Windsurf
  • Codex
  • Gemini CLI
  • Cline
  • Amp
  • Roo Code
  • Goose
  • Continue
  • Kilo Code
  • Junie
  • Trae
  • OpenHands
  • Qwen Code
  • AI Agent
  • Tabnine Chat
  • Sourcegraph Cody
  • Amazon Q
  • Firebase Genkit
  • Sweep
  • Devin
  • Phind
  • Mentat
  • Claude Desktop
  • Aider
  • GPT Pilot
  • Plandex
  • bolt.new
  • v0
  • Replit Agent
  • Anse
  • TypingMind
  • BetterChatGPT
  • LibreChat
  • Warp AI
  • Pieces
  • Fig AI
Embed badge
vskill VERIFIED badge
[![vskill VERIFIED](https://verified-skill.com/api/v1/skills/ionclaw-org/ionclaw/mcp-client/badge)](https://verified-skill.com/skills/ionclaw-org/ionclaw/mcp-client)

Something wrong with this skill or its page? Tell us.