Skip to content

salespeak-ai/agentic-web

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

2 Commits
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

The Agentic Web

An open spec for turning any business into an MCP server that AI agents can talk to.

User → AI Agent → Your MCP Server → Verified Answer + Action

Right now, when someone asks an AI "Does Acme support Salesforce?" the AI scrapes a website and guesses. With the Agentic Web, the AI calls your server directly, gets a signed answer, and can actually book the demo.

Built on MCP (Anthropic's Model Context Protocol). Any MCP client connects without custom integrations.

Spec · Blog · Website


Try it

The bakery example is a working MCP server. Zero dependencies, just Python.

git clone https://github.com/salespeak-ai/agentic-web.git
cd agentic-web/examples/bakery
python server.py

In another terminal:

# Connect
curl -s -X POST http://localhost:8080/mcp \
  -H "Content-Type: application/json" \
  -d '{"jsonrpc":"2.0","id":1,"method":"initialize",
       "params":{"protocolVersion":"2025-03-26",
       "clientInfo":{"name":"test","version":"1.0"}}}' | python -m json.tool

# Ask a question
curl -s -X POST http://localhost:8080/mcp \
  -H "Content-Type: application/json" \
  -d '{"jsonrpc":"2.0","id":2,"method":"tools/call",
       "params":{"name":"ask_question",
       "arguments":{"question":"Do you have gluten-free cakes?"}}}' | python -m json.tool

# Place an order
curl -s -X POST http://localhost:8080/mcp \
  -H "Content-Type: application/json" \
  -d '{"jsonrpc":"2.0","id":3,"method":"tools/call",
       "params":{"name":"place_order",
       "arguments":{"items":[{"cake":"Vanilla Bean","size":"8-inch"}],
       "pickup_date":"2026-03-21","name":"Jamie","phone":"555-0123"}}}' | python -m json.tool

You'll get real JSON-RPC 2.0 responses with content (human-readable) and structuredContent (machine-readable data).

What your server exposes

Your MCP server registers tools that agents discover via tools/list and call via tools/call. Which tools you expose depends on your business:

A bakery might have: ask_question, place_order

A SaaS company might have: ask_question, qualify, schedule_demo, request_quote, open_ticket

An e-commerce store might have: ask_question, check_stock, track_order, start_return

Same protocol. Different tools. The agent figures out what's available at runtime.

How it works

┌──────────┐       ┌───────────────┐       ┌──────────────────┐
│          │       │               │       │                  │
│   User   │──────▶│   AI Agent    │◀─────▶│  Your MCP Server │
│          │       │  (any MCP     │ JSON- │                  │
│          │       │   client)     │ RPC   │  ask_question    │
│          │       │               │ 2.0   │  qualify         │
└──────────┘       └───────────────┘       │  schedule_demo   │
                                           │  place_order     │
                                           │  ...             │
                                           └──────────────────┘
  1. Agent connects to POST /mcp and sends initialize
  2. Agent calls tools/list to see what you offer
  3. Agent calls tools on behalf of the user
  4. If a tool is gated, server returns qualificationRequired and the agent collects info via qualify
  5. Responses include Ed25519 signatures so agents can prove data is authentic

Access model

No login required. Like a website.

Tier What happens Think of it as
Anonymous Connect and ask questions freely Browsing a website
Qualified Share info through the qualify tool Filling out a contact form
Authenticated OAuth 2.1, only if you need account-level access Logging in

Most businesses only need the first two.

Response format

{
  "content": [
    { "type": "text", "text": "Yes! Gluten-free Vanilla Bean, 6-inch ($30) or 8-inch ($42)." }
  ],
  "structuredContent": {
    "answer": "Gluten-free Vanilla Bean cakes available",
    "options": [
      { "size": "6-inch", "price": 30 },
      { "size": "8-inch", "price": 42 }
    ],
    "suggestedActions": ["place_order"]
  }
}

content is what the AI shows the user. structuredContent is typed data the agent can act on.

Where this fits

Protocol Handles By
MCP Transport (JSON-RPC 2.0 over HTTP) Anthropic
Agentic Web Business knowledge + actions (this repo) Salespeak (open)
UCP Commerce (cart, checkout, payments) Google, Shopify, Walmart
A2A Agent-to-agent negotiation Google

They're independent. Use whichever ones you need.

Repo structure

agentic-web/
├── examples/
│   ├── bakery/          # Rosa's Bakery — working MCP server (Python, zero deps)
│   ├── saas/            # SaaS with qualification flow (coming)
│   └── ecommerce/       # E-commerce with Node.js (coming)
├── specification/       # Spec in markdown (coming — full spec at agentic-web.ai)
├── sdk/                 # Python + Node.js SDKs (coming)
├── CONTRIBUTING.md
└── LICENSE              # MIT

The bakery example works today. The rest is in progress.

Specification

Full spec: agentic-web.ai/specification.html

Covers transport, tools, qualification, verification (Ed25519 + JWKS), and the access model.

Contributing

Found a gap? Open an issue. Built something? Submit a PR. See CONTRIBUTING.md.

Is this a Salespeak product?

No. This is an open spec. Salespeak maintains it, but anyone can implement it. The spec, examples, and future SDKs are MIT licensed. Salespeak builds commercial products on top of the spec. The spec itself is community property.

License

MIT

About

The Agentic Web — open specification for turning any business into an AI-native MCP server

Resources

License

Contributing

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors