MCP  ·  tool_use  ·  Claude Code  ·  Claude Desktop

Slopshop for
Claude & Anthropic Agents

real tools across 82 categories Claude can call. Memory is free. Every result verified.
Connect in 60 seconds via MCP — or drop tools directly into your tool_use array.

82
Real Tools
0cr
Memory Cost
MCP
Native Protocol
100%
Verified Results

Quickstart

Three steps. Claude has tools.

Whether you're using Claude Code, Claude Desktop, or the @anthropic-ai/sdk directly — Slopshop plugs in at the protocol level.

Step 01 — Install

Add the MCP server

Install the Slopshop MCP server globally. It speaks the Model Context Protocol natively — no shims, no wrappers.

npm install -g @slopshop/mcp-serverclick to copy
Step 02 — Configure

Add to claude_desktop_config.json

Point Claude Desktop or Claude Code at your Slopshop MCP server. One block, one API key.

"slopshop": { "command": "slopshop-mcp" }
Step 03 — Call

Claude calls tools automatically

Claude discovers the full catalog of tools via the MCP tool manifest. No prompt engineering needed — just ask Claude to do the thing.

82 categories of tools available · auto-discovered

MCP Configuration

claude_desktop_config.json

Drop this into your Claude Desktop or Claude Code config. Slopshop's MCP server exposes the full catalog of tools as first-class MCP tools — each with a description, input schema, and real execution.

~/Library/Application Support/Claude/claude_desktop_config.json
{
  "mcpServers": {
    "slopshop": {
      "command": "npx",
      "args": ["-y", "@slopshop/mcp-server"],
      "env": {
        "SLOPSHOP_API_KEY": "sk-slop-your-key-here",
        "SLOPSHOP_BASE_URL": "https://slopshop.gg"
      }
    }
  }
}

Or point at the remote MCP endpoint directly: /v1/mcp/recommended returns a curated tool manifest. Pass it as --tools-url for Claude Code CLI usage.

mcp-server.js — local self-hosted setup javascript
// Self-host the Slopshop MCP server alongside Claude Code
// node mcp-server.js — exposes the full catalog of tools over stdio MCP protocol

import { Server } from '@modelcontextprotocol/sdk/server/index.js';
import { StdioServerTransport } from '@modelcontextprotocol/sdk/server/stdio.js';

const server = new Server({ name: 'slopshop', version: '1.0.0' });
const BASE = 'https://slopshop.gg';
const KEY  = process.env.SLOPSHOP_API_KEY;

// Fetch the full tool manifest from Slopshop
const manifest = await fetch(`${BASE}/v1/mcp/tools`, {
  headers: { 'Authorization': `Bearer ${KEY}` }
}).then(r => r.json());

server.setRequestHandler('tools/list', () => ({ tools: manifest.tools }));

server.setRequestHandler('tools/call', async ({ name, arguments: args }) => {
  const res = await fetch(`${BASE}/v1/${name}`, {
    method: 'POST',
    headers: {
      'Authorization': `Bearer ${KEY}`,
      'Content-Type': 'application/json'
    },
    body: JSON.stringify(args)
  });
  return { content: [{ type: 'text', text: JSON.stringify(await res.json()) }] };
});

await server.connect(new StdioServerTransport());

Direct SDK Integration

tool_use with @anthropic-ai/sdk

Prefer to manage tools yourself? Fetch Slopshop tool definitions and pass them directly into Claude's tools array. Claude handles the tool_use / tool_result loop — Slopshop handles the execution.

claude-agent.js — tool_use loop javascript
import Anthropic from '@anthropic-ai/sdk';

const claude   = new Anthropic();
const SLOP_KEY = process.env.SLOPSHOP_API_KEY;
const SLOP_URL = 'https://slopshop.gg';

// 1. Pull Slopshop tools as Anthropic tool definitions
async function getSlopshopTools(slugs = []) {
  const url = slugs.length
    ? `${SLOP_URL}/v1/mcp/recommended?tools=${slugs.join(',')}`
    : `${SLOP_URL}/v1/mcp/recommended`;
  const data = await fetch(url, {
    headers: { 'Authorization': `Bearer ${SLOP_KEY}` }
  }).then(r => r.json());

  // Each tool is already in Anthropic's tool format
  return data.tools; // [{ name, description, input_schema }]
}

// 2. Execute a tool call via Slopshop
async function executeTool(toolName, toolInput) {
  const res = await fetch(`${SLOP_URL}/v1/${toolName}`, {
    method: 'POST',
    headers: {
      'Authorization': `Bearer ${SLOP_KEY}`,
      'Content-Type': 'application/json'
    },
    body: JSON.stringify(toolInput)
  });
  return res.json();
}

// 3. Agentic loop — Claude calls tools, Slopshop executes
async function runAgent(userMessage) {
  const tools = await getSlopshopTools([
    'dns-lookup', 'ssl-check', 'http-request',
    'whois', 'hash', 'memory-set'
  ]);

  let messages = [{ role: 'user', content: userMessage }];

  while (true) {
    const response = await claude.messages.create({
      model: 'claude-opus-4-6',
      max_tokens: 4096,
      tools,
      messages
    });

    if (response.stop_reason === 'end_turn') {
      return response.content.find(b => b.type === 'text')?.text;
    }

    if (response.stop_reason === 'tool_use') {
      messages.push({ role: 'assistant', content: response.content });

      // Execute all tool calls in parallel
      const toolResults = await Promise.all(
        response.content
          .filter(b => b.type === 'tool_use')
          .map(async block => {
            const result = await executeTool(block.name, block.input);
            return {
              type: 'tool_result',
              tool_use_id: block.id,
              content: JSON.stringify(result)
            };
          })
      );

      messages.push({ role: 'user', content: toolResults });
    }
  }
}

// Run it
const answer = await runAgent(
  'Audit slopshop.gg — check DNS, SSL cert, HTTP headers, and save results to memory'
);
console.log(answer);
What Claude sends / what Slopshop returns
Claude → tool_use block
{
  "type": "tool_use",
  "id": "toolu_01abc",
  "name": "ssl-check",
  "input": {
    "host": "slopshop.gg"
  }
}
Slopshop → tool_result
{
  "valid": true,
  "expires": "2026-09-12",
  "issuer": "Let's Encrypt",
  "days_left": 170,
  "grade": "A+",
  "_engine": "real"
}

Every Slopshop response includes "_engine": "real" — a signed guarantee that this result came from real compute, not a language model hallucination.


What You Get

Everything Claude needs to act, not just think

Slopshop is the execution substrate Claude is missing out of the box. Every category Claude might reach for — it's here, real, and verified.

🀅

78 Categories of Real Tools

DNS, SSL, HTTP, crypto, hashing, code execution, data transforms, document generation, web research. All real. No hallucinated outputs.

🧠

Free Persistent Memory

Claude can write to and read from Slopshop's key-value memory store at zero credit cost. State persists across sessions automatically.

🔗

MCP Native

Slopshop speaks MCP out of the box. Drop it into claude_desktop_config.json and every tool appears in Claude's context immediately.

👀

Full Observability

Audit logs, per-request tracing, credit usage per tool call. Every tool invocation Claude makes is logged with inputs, outputs, and latency.

🏠

Self-Hostable

Run the entire Slopshop tool server on your own infrastructure. Zero external dependencies for compute APIs. Air-gapped setups supported.


Give Claude a full backend

One MCP config. real tools across 82 categories. Free memory. Every result verified with _engine: real.
Claude stops hallucinating execution — it actually executes.

Read the MCP Docs View Curated Tool List Browse Browse All Tools
→ Full Docs → Browse Tools → Agent Templates → Savings Calculator