Command Palette

Search for a command to run...

UnylyUnyly
Browse all

CURL TO CONTEXT

FreeNot checked

This educational demo teaches the Model Context Protocol (MCP) - a protocol for AI assistants to interact with external tools and data sources.

GitHubEmbed

About

This educational demo teaches the Model Context Protocol (MCP) - a protocol for AI assistants to interact with external tools and data sources.

README

📚 Overview

This educational demo teaches the Model Context Protocol (MCP) - a protocol for AI assistants to interact with external tools and data sources.

What You'll Learn

By working through this demo, you'll understand:

  • MCP Protocol Basics - How tools are defined, listed, and called
  • JSON-RPC 2.0 - Request/response format used by MCP
  • Transport Methods - stdio (local) vs HTTP (remote) communication
  • Error Handling - Proper error codes and messages
  • TypeScript Development - Building and compiling MCP servers/clients
  • Real-world Testing - Using curl, Postman, and programmatic clients

🎯 Contents

CURL_TO_CONTEXT/
├── README.md                          # This file - Full documentation
├── CHEATSHEET.md                      # Quick reference (print this!)
├── mcp-server/                        # Simple MCP Server Implementation
│   ├── src/
│   │   └── index.ts                   # Math operations MCP server
│   ├── package.json
│   ├── tsconfig.json
│   └── README.md
├── mcp-client-stdio/                  # Client using stdio transport
│   ├── src/
│   │   └── client.ts                  # stdio client implementation
│   ├── package.json
│   ├── tsconfig.json
│   └── README.md
├── mcp-client-remote/                 # Client using HTTP transport
│   ├── src/
│   │   └── client.ts                  # HTTP client implementation
│   ├── package.json
│   ├── tsconfig.json
│   └── README.md
└── examples/                          # JSON-RPC request examples
    ├── tools-list-request.json        # List all tools
    ├── add-request.json               # Addition example
    ├── subtract-request.json          # Subtraction example
    ├── multiply-request.json          # Multiplication example
    ├── divide-request.json            # Division example
    └── README.md                      # Usage guide

🚀 Quick Start

Prerequisites

Before starting, ensure you have Node.js 18+ installed:

node --version  # Should show v18.x.x or higher

If not installed, download from nodejs.org

💡 Tip: Print or bookmark CHEATSHEET.md for quick reference while working through the demo!


Option A: stdio Transport (Recommended First)

Best for: Learning local MCP communication

Step 1: Build the MCP Server

cd mcp-server
npm install
npm run build

What this does: Compiles the TypeScript server to JavaScript

Step 2: Run the stdio Client Demo

cd ../mcp-client-stdio
npm install
npm run build
npm start

Expected output:

  • ✅ Server starts via stdio
  • ✅ Lists 4 math tools (add, subtract, multiply, divide)
  • ✅ Executes calculations automatically
  • ✅ Demonstrates error handling

Duration: ~2 minutes


Option B: HTTP Transport (Remote Connection)

Best for: Understanding networked MCP servers

Terminal 1 - Start HTTP Server:

cd mcp-server
npm install       # If not already done
npm run build     # If not already done
npm run start:http

Expected output:

🚀 Starting MCP Math Server in HTTP mode
✅ HTTP Server running on http://localhost:5001

Keep this terminal running!

Terminal 2 - Run HTTP Client:

cd mcp-client-remote
npm install
npm run build
npm start

What you'll see:

  • 📤 JSON-RPC requests
  • 📥 Server responses
  • ✅ Math operations over HTTP
  • ✅ Error handling examples

Duration: ~3 minutes


Quick Manual Test (HTTP Server Running)

Try these curl commands to test the server directly:

List available tools:

curl -X POST http://localhost:5001/mcp \
  -H "Content-Type: application/json" \
  -d '{"jsonrpc":"2.0","method":"tools/list","id":1}'

Calculate 10 + 5:

curl -X POST http://localhost:5001/mcp \
  -H "Content-Type: application/json" \
  -d '{"jsonrpc":"2.0","method":"tools/call","params":{"name":"add","arguments":{"a":10,"b":5}},"id":2}'

Test error (divide by zero):

curl -X POST http://localhost:5001/mcp \
  -H "Content-Type: application/json" \
  -d '{"jsonrpc":"2.0","method":"tools/call","params":{"name":"divide","arguments":{"a":10,"b":0}},"id":3}'

Troubleshooting

"Server not found" error?

# Make sure you built the server first:
cd mcp-server
npm run build

"Connection refused" error?

# Start the HTTP server in another terminal:
cd mcp-server
npm run start:http

Port 5001 already in use?

# Use a different port:
PORT=3000 npm run start:http
# Then update client:
MCP_SERVER_URL=http://localhost:3000/mcp npm start

📖 Key Concepts

JSON-RPC 2.0 Format

Every MCP message follows this structure:

{
  "jsonrpc": "2.0",        // Always "2.0"
  "method": "tools/call",   // MCP method name
  "params": {               // Optional parameters
    "name": "add",
    "arguments": {
      "a": 10,
      "b": 5
    }
  },
  "id": 1                   // Unique request ID
}

MCP Protocol Methods

Method Purpose When to Use
initialize Handshake between client and server First connection
tools/list Discover available tools Before calling tools
tools/call Execute a specific tool Perform operations
resources/list Get available resources Access data sources
prompts/list Get available prompts Template management
notifications/ Server-to-client updates Real-time events

Error Codes (JSON-RPC 2.0)

Code Name Meaning
-32700 Parse error Invalid JSON
-32600 Invalid Request Malformed JSON-RPC
-32601 Method not found Unknown method
-32602 Invalid params Wrong parameters
-32603 Internal error Server error

🎯 Quick Reference

Common Commands

List available tools:

curl -X POST http://localhost:5001/mcp \
  -H "Content-Type: application/json" \
  -d '{"jsonrpc":"2.0","method":"tools/list","id":1}'

Call a tool:

curl -X POST http://localhost:5001/mcp \
  -H "Content-Type: application/json" \
  -d '{"jsonrpc":"2.0","method":"tools/call","params":{"name":"add","arguments":{"a":10,"b":5}},"id":2}'

Using example files:

cd examples
curl -X POST http://localhost:5001/mcp \
  -H "Content-Type: application/json" \
  -d @add-request.json

Project Commands

Command Location Purpose
npm install Any directory Install dependencies
npm run build Any directory Compile TypeScript
npm start mcp-server Run in stdio mode
npm run start:http mcp-server Run HTTP server
npm start mcp-client-stdio Run stdio demo
npm start mcp-client-remote Run HTTP demo
npm run dev Any directory Build + run
npm run watch mcp-server Auto-rebuild on changes

Environment Variables

# Change server port
PORT=3000 npm run start:http

# Change client server URL
MCP_SERVER_URL=http://localhost:3000/mcp npm start

📚 Learning Path

Immediate Next Steps

  1. Review CHEATSHEET.md - Keep this handy for quick reference
  2. Modify the examples - Change values in examples/*.json files and test
  3. Add error handling - Try invalid inputs and see responses
  4. Explore the code - Read through src/index.ts files to understand implementation

After Completing This Demo

  1. Official MCP Documentation - modelcontextprotocol.io
  2. Build Your Own Tools - Add new operations (modulo, power, square root)
  3. Add Resources - Learn MCP resource management
  4. Implement Prompts - Add prompt templates
  5. Real Integration - Connect MCP to Claude, GPT, or other AI systems

🔗 Additional Resources

MCP Protocol & Specification

JSON-RPC 2.0

TypeScript & Node.js

Express.js (HTTP Server)

Testing Tools

  • curl Documentation - curl.se/docs
    • Command-line tool for testing HTTP endpoints
  • Postman Learning - learning.postman.com
    • API testing and documentation platform
  • HTTPie - httpie.io
    • User-friendly alternative to curl

AI & LLM Integration

Community & Examples

  • Awesome MCP - Search for "awesome-mcp" on GitHub
    • Curated list of MCP resources and projects
  • MCP Community Servers - github.com/modelcontextprotocol/servers
    • Official collection of MCP server implementations
  • Discord/Slack Communities - Check MCP documentation for links
    • Get help and share your projects

Related Concepts

Video Tutorials

  • YouTube - MCP Tutorials - Search for "Model Context Protocol"
    • Video walkthroughs and explanations
  • Anthropic's YouTube Channel - youtube.com/@AnthropicAI
    • Official videos about MCP and Claude

Books & Articles

  • "Designing Data-Intensive Applications" by Martin Kleppmann
    • Understanding distributed systems and protocols
  • "RESTful Web APIs" by Leonard Richardson & Mike Amundsen
    • API design principles
  • MDN Web Docs - developer.mozilla.org
    • Web development reference

🤝 Contributing

This is an educational resource. Contributions welcome:

  • Add more math operations (power, square root, etc.)
  • Improve error messages and validation
  • Add more detailed examples
  • Create video tutorials or blog posts
  • Translate documentation

📝 License

MIT License - Free for educational purposes


Questions or Issues? Open an issue or check the individual README files in each directory for more detailed information.

from github.com/MehdiBukhari/CURL_TO_CONTEXT

Installing CURL TO CONTEXT

This server has no published package — it is built from source. Open the repository and follow its README.

▸ github.com/MehdiBukhari/CURL_TO_CONTEXT

FAQ

Is CURL TO CONTEXT MCP free?

Yes, CURL TO CONTEXT MCP is free — one-click install via Unyly at no cost.

Does CURL TO CONTEXT need an API key?

No, CURL TO CONTEXT runs without API keys or environment variables.

Is CURL TO CONTEXT hosted or self-hosted?

Self-hosted: the server runs locally on your machine via the install command above.

How do I install CURL TO CONTEXT in Claude Desktop, Claude Code or Cursor?

Open CURL TO CONTEXT on unyly.org, pick your client tab (Claude Desktop, Claude Code, Cursor) and press Install — the config is generated automatically, no JSON editing.

Related MCPs

Compare CURL TO CONTEXT with

Not sure what to pick?

Find your stack in 60 seconds

Author?

Embed badge for your README

Browse similar

All ai MCPs