Command Palette

Search for a command to run...

UnylyUnyly
Browse all

JSON Placeholder Posts

FreeNot checked

Fetches and filters posts from JSON Placeholder API by userId, with support for elicitation when userId is omitted.

GitHubEmbed

About

Fetches and filters posts from JSON Placeholder API by userId, with support for elicitation when userId is omitted.

README

A small UV-managed FastMCP server that calls:

https://json-placeholder.mock.beeceptor.com/posts

It exposes two MCP tools:

  • get_posts_by_user, which returns matching posts when userId is provided. If userId is missing, it creates a durable pending workflow instead of using native MCP elicitation.
  • continue_workflow, which accepts the missing input and completes a pending workflow from any pod.

The tools emit MCP server notifications with log messages and progress updates while they resolve input, fetch posts, and filter results.

Setup

uv sync

Run

For MCP clients that use stdio:

uv run json-placeholder-posts-mcp

For local HTTP testing:

uv run json-placeholder-posts-mcp --transport streamable-http

By default the HTTP server listens at:

http://127.0.0.1:8000/mcp

You can override the host and port with environment variables:

HOST=127.0.0.1 PORT=9000 uv run json-placeholder-posts-mcp --transport streamable-http

Workflow continuation uses Mongo. By default, the server connects to mongodb://localhost:27017:

uv run json-placeholder-posts-mcp --transport streamable-http

For deployed environments, override the Mongo connection details:

MONGO_URI=mongodb://mongo:27017 \
MONGO_DATABASE=json_placeholder_posts_mcp \
MONGO_WORKFLOW_COLLECTION=elicitation_workflows \
uv run json-placeholder-posts-mcp --transport streamable-http

Technical Design

See docs/mcp-workflow-design.md for the MCP creation flow, workflow continuation pattern, elicitation decision, and multi-pod workflow ID storage design.

Tool

get_posts_by_user

Fetches all posts from the Beeceptor API and returns only posts matching the provided userId. When userId is omitted, the server creates a pending workflow that any pod can continue with the returned workflowId.

Input:

{
  "userId": 1
}

Output:

{
  "status": "completed",
  "userId": 1,
  "count": 2,
  "posts": [],
  "source": "https://json-placeholder.mock.beeceptor.com/posts"
}

Pending workflow input:

{}

Pending workflow output:

{
  "status": "input_required",
  "workflowId": "abc123",
  "message": "Please choose a user:\n1. User 1\n2. User 2\n3. User 3\n4. User 4\n5. User 5\n6. User 6\n7. User 7\n8. User 8\n9. User 9\n10. User 10\n\nReply with the number or userId.",
  "requiredInput": {
    "field": "userId",
    "type": "select",
    "dataType": "integer",
    "display": "dropdown",
    "options": [
      {
        "label": "User 1",
        "value": 1
      },
      {
        "label": "User 2",
        "value": 2
      },
      {
        "label": "User 3",
        "value": 3
      }
    ]
  },
  "nextTool": "continue_workflow",
  "expiresAt": "2026-06-18T10:15:00+00:00"
}

Clients that own their UI can render requiredInput.options as a dropdown. Chat clients without custom UI support can show the same message as numbered choices and pass the selected userId to continue_workflow.

continue_workflow

Completes a pending workflow and clears its stored details after success or failure.

Input:

{
  "workflowId": "abc123",
  "userId": 1
}

Development

uv run pytest
uv run ruff check .

from github.com/GowthamS05/mcp_elicitation

Install JSON Placeholder Posts in Claude Desktop, Claude Code & Cursor

Recommended · one command, every IDE
unyly install json-placeholder-posts-mcp

Installs into Claude Desktop, Claude Code, Cursor & VS Code — handles npx, uvx and build-from-source repos for you.

First time? Get the CLI: curl -fsSL https://unyly.org/install | sh

Or configure manually

Run in your terminal:

claude mcp add json-placeholder-posts-mcp -- uvx --from git+https://github.com/GowthamS05/mcp_elicitation json-placeholder-posts-mcp

FAQ

Is JSON Placeholder Posts MCP free?

Yes, JSON Placeholder Posts MCP is free — one-click install via Unyly at no cost.

Does JSON Placeholder Posts need an API key?

No, JSON Placeholder Posts runs without API keys or environment variables.

Is JSON Placeholder Posts hosted or self-hosted?

A hosted option is available: Unyly runs the server in the cloud, no local setup required.

How do I install JSON Placeholder Posts in Claude Desktop, Claude Code or Cursor?

Open JSON Placeholder Posts 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 JSON Placeholder Posts with

Not sure what to pick?

Find your stack in 60 seconds

Author?

Embed badge for your README

Browse similar

All development MCPs