Skip to main content

MCP Server

Connect your AI assistant straight to this portfolio: a public Model Context Protocol server that answers questions about Monir with live, structured data in all five site languages.

The Endpoint

One public endpoint, no session to manage. Point any MCP client at it and start asking.

https://mcp.webanion.com/mcp
  • Transport: Streamable HTTP, JSON-RPC 2.0 over POST, stateless
  • Authentication: None to start. Sign in once from your client, or send a free API key as a bearer header, and the full catalogue opens.
  • Discovery: A machine-readable description of the server lives at /.well-known/mcp.json

Connect and Sign In

Add the server by URL, then sign in once in a browser. The client keeps the token and refreshes it by itself; nothing is pasted into a conversation or a config file, and nothing has to be reconnected.

Claude Code

claude mcp add --transport http webanion https://mcp.webanion.com/mcp
claude mcp login webanion

The first line adds the server, the second runs the sign-in from the shell. Or, in a session, open /mcp, pick webanion and choose Authenticate. A browser tab opens, you give your name and email, a six digit code arrives by email within a minute, you enter it and approve. That is the whole sign-in.

Claude Desktop and claude.ai

Add the endpoint URL as a custom connector and connect from the connector's settings. The same sign-in runs in the browser.

Cursor

Add the endpoint URL as a remote MCP server. Cursor reads the server's metadata and offers the login itself.

ChatGPT

https://mcp.webanion.com/mcp

ChatGPT adds remote MCP servers as connectors: open Settings, then Connectors, enable developer mode, choose Add custom connector and paste the endpoint URL.

Approving lets the client read the full portfolio, the timeline, the blog and the people, and send Monir a message or subscribe to the newsletter as you. You can end it from the client at any time, with claude mcp logout webanion or Clear authentication in /mcp, and Monir can from his side.

No browser to open? Use the API key route instead.

What It Can Tell You

It can answer

  • Who Monir is: headline, summary, availability, timezone and working hours
  • What he builds: services, showcases and every project with its story and tech stack
  • The evidence: the experience timeline, client testimonials and the technologies counted across real projects
  • How he works: capabilities, pricing and engagement terms from the curated knowledge base
  • The writing: blog articles with their categories and tags

It will not give you

  • Private contact details: client and collaborator emails never leave the database
  • Day-level dates: engagement dates are month precision by design
  • Draft or unpublished content: the CMS serves only what is public
  • Anything beyond Monir and his work

See It on the Site

Every answer the server gives comes from these pages. Browse them directly.

Two Tiers, One Registration

Anonymous callers already get the shortlisting answers. Signing in from your client unlocks everything else, and a free key, verified by email, does the same for a client with no browser.

Anonymous

No sign-in needed: the profile, the tech stack, services, showcases, shallow portfolio search, the whole knowledge base, the full record for any named project and the experience timeline.

Verified

Everything above at full depth, plus site wide search, one service or showcase in full, articles and taxonomy, companies, people, testimonials, messaging and the newsletter.

Tool Catalogue

The real tool names, exactly as the server registers them.

Available anonymously

get_profile

Who this is: headline, summary, availability, resume and social links. Call it first.

search_portfolio

Find projects by description or exact technology. Anonymous callers get slug, title and a one line summary; verified callers get the full result.

get_tech_stack

Technologies across the portfolio, each with the number of projects it appears in.

search_knowledge / get_knowledge

Search the curated knowledge base and read any document: how he works, capabilities with evidence, project stories, pricing and terms.

list_services

The services on offer, each with a summary.

list_showcases

Work grouped by kind: mobile, web, desktop, devops.

get_project

Full detail for one project: story sections, tech stack, live URLs, the client and testimonials.

get_experience_timeline

Work history grouped by company, month precision, the way a CV reads.

request_access / verify_access

Register with a name and email, verify the six digit code, receive the API key. The route for a client that cannot open a browser.

Signed in, or with an API key

search_site

Full text search across projects, services, articles, companies, people, testimonials and tags.

get_service

One service with the projects delivered under it.

get_showcase

One showcase with every project inside it.

search_articles / get_article

Search the blog and read any published article in full.

list_categories / list_tags / get_tag

Blog categories, plus tags across the blog and the portfolio.

list_companies / get_company

Companies Monir has worked with and the work delivered for each.

list_clients / list_talents / get_talent

Clients and collaborators with their roles and projects. Contact details are never included.

list_testimonials

Client testimonials with rating and attribution.

send_contact_message

Send Monir a message as the verified consumer. Five per day; a duplicate is delivered once.

subscribe_newsletter

Subscribe the verified address to the newsletter.

Example prompts

Once the server is connected, ask in plain language and the assistant picks the tools.

Has Monir built anything like a booking marketplace with payments?

What does his experience timeline look like, and what is he focused on right now?

Which projects used React Native, and what did the clients say about them?

How does he price an engagement and how does he like to work?

Register me for an API key with my email, then send him a short intro message.

Without a Browser: the API Key

A client that cannot open a browser registers with two tool calls instead and sends the key in a header on every request. The key is shown once and only its hash is kept, so a lost key is not recovered but reissued: verify a fresh code and a new key retires the old one.

How to register

  1. Call request_access with your name and email address.
  2. A six digit code arrives at that address within a minute.
  3. Call verify_access with the email and the code. The key is shown once, so store it.
  4. Send the key as an Authorization: Bearer header on every request, and reconnect your client so the header takes effect.

Copy, paste, done. Replace <key> with the key verify_access returned, or drop the Authorization header entirely to browse anonymously.

Claude Code

claude mcp add --transport http webanion https://mcp.webanion.com/mcp --header "Authorization: Bearer <key>"

Claude Desktop

{
  "mcpServers": {
    "webanion": {
      "command": "npx",
      "args": [
        "-y",
        "mcp-remote",
        "https://mcp.webanion.com/mcp",
        "--header",
        "Authorization:${WEBANION_AUTH}"
      ],
      "env": { "WEBANION_AUTH": "Bearer <key>" }
    }
  }
}

Cursor

{
  "mcpServers": {
    "webanion": {
      "command": "npx",
      "args": [
        "-y",
        "mcp-remote",
        "https://mcp.webanion.com/mcp",
        "--header",
        "Authorization:${WEBANION_AUTH}"
      ],
      "env": { "WEBANION_AUTH": "Bearer <key>" }
    }
  }
}

Claude Desktop and Cursor speak stdio, so the small mcp-remote proxy bridges them to the HTTP endpoint.

A connection opened without the header keeps going without it. After configuring the key, reconnect the client, in Claude Code /mcp and reconnect, or the key changes nothing and every gated call keeps asking you to register.

Rate Limits

Enough for real use, tight enough to stop abuse. Limits apply per verified consumer.

  • Reads: 120 per minute
  • Writes: 5 per minute, and at most five contact messages per day
  • Key requests: 3 per hour per email address, 10 per hour per network

A blown limit answers with a retry time, never a silent failure.

Privacy, Stated Plainly

Reads without a key are anonymous. No account, no cookie, no profile of what you ask.

Signing in or registering stores exactly what you send: the name, the email address the code was sent to, and the optional organization and purpose. That is all a token or a bearer key resolves to, and both are stored as hashes only.

Messages sent through send_contact_message land in Monir's inbox under the verified sender's name and address, and nowhere else.

The newsletter uses the verified address only, and subscribing twice is one subscription. Nothing here is sold or shared.

Terms of Use

Using the server means accepting the site's terms of use, which cover it in a section of their own. This is the short version, and where the two differ, the terms apply.

Read the terms of use

What the server returns may be quoted in part, with a link to the page it came from. Ask before republishing a whole article, case study or image.

A sign-in or a key is free and personal to whoever verified it: use it yourself or for the assistant you run, and do not share or sell it. A lost key means verifying again, which retires the old one.

Abuse, working around the limits or impersonation can get a sign-in or a key revoked, and the person behind it blocked, without notice. The server is offered as it is, and it can change, pause or stop at any time.