Paperboy for LibreChat
Chat with any model in LibreChat and let it pull your search queries, write the article and fact check it through Paperboy.
Set up
You will either define a paperboy server in librechat.yaml with an Authorization header read from an environment variable, or add it from MCP Settings in the UI with API Key authentication.
In Paperboy, open Settings, API keys, and create a key. It starts with pb_live_.
Either add PAPERBOY_API_KEY to the .env file and the paperboy block to librechat.yaml, then restart LibreChat so the file is read, or open MCP Settings in the chat UI and click Add MCP (+).
For the UI route, enter https://paperboyseo.com/mcp, pick Streamable HTTPS, choose the API Key authentication option, paste the key and set the header format to Bearer.
Open a chat, click the + palette (Attach and tools), and under MCP Servers click paperboy so it shows as a chip on the composer.
Ask the model to call one Paperboy tool, such as get_sites.
mcpServers:
paperboy:
type: streamable-http
url: "https://paperboyseo.com/mcp"
headers:
Authorization: "Bearer ${PAPERBOY_API_KEY}"Replace pb_live_YOUR_KEY with a key from Settings, API keys, and never commit it. The MCP docs list every client we cover.
How to tell it worked
Open MCP Settings and check the status dot on the paperboy server icon: the docs list Connected, Needs Auth, Connecting or Initializing, Disconnected or Error, On-demand and Unknown. Then enable the server in a chat and ask for get_sites.
How to remove it
Delete the paperboy block from librechat.yaml and restart LibreChat, or open the server in MCP Settings in the UI. The docs fetched do not describe a delete control for UI-created servers. Revoke the key in Paperboy Settings, API keys, if you no longer need it.
What you get
Eight tools, the same engine as the dashboard. Reads are free. A pack is $20 for 100 credits; see how credits work.
get_sitesLists your sites with plan, publishing method and whether Search Console is connected. Every other call starts from a site id.
suggest_topicsReturns the next articles to write, each with the search data that is the reason for it.
write_articleStarts a fact-checked article and returns an id at once. The run takes a few minutes. It does not publish unless you pass publish: true.
get_articleReturns the article's status, its fact-check verdict and every source. Poll it after write_article until it reads published or needs_review.
check_claimsFact checks any public URL or pasted Markdown and returns each cited claim with the sources it was compared against.
publish_articlePublishes an article that passed the fact check to the site's publishing target. It changes the live site, so the agent should ask first.
get_performanceSearch Console clicks, impressions and average position for a site, by day and by article.
get_queriesThe queries a site, or one article, appears for in Search Console. This is where page-two keywords show up.
Try it
Plain requests. The tools each one uses are listed under it.
“List my Paperboy sites, pull the top queries for the first one, and suggest three article topics with the reason for each.”
Uses get_sitesget_queriessuggest_topics
“Write an article on the best topic you found, then keep calling get_article until it finishes and show me the verdict and sources. Do not publish it.”
Uses write_articleget_article
“Fact check the text I paste below with Paperboy and list every claim that has no supporting source. Then show me this month's clicks and impressions with get_performance.”
Uses check_claimsget_performance
Why
LibreChat has two ways to add a remote server. An admin defines it in librechat.yaml with a headers block and the key in an environment variable, and it needs a restart. A user with permission can instead click Add MCP in MCP Settings and choose API Key authentication, with no file edit.
The shared header sends one Paperboy key for everyone on your instance. If several people use it, switch to the per-user key option so each person enters their own. Then turn paperboy on from the composer for each chat, and ask the model to poll get_article, since an article takes minutes.
Compare
Same engine, two ways in. Pick the one that fits how you already work.
| Feature | Dashboard | LibreChat | Source |
|---|---|---|---|
| Where you work | paperboyseo.com/app: sites, calendar, fact checks | Open source chat interface for many AI models, with MCP servers and agents. | LibreChat docs: MCPRead Oct 30, 2026 |
| How it connects | Sign in and paste your site address. The first article is free. | Remote MCP. LibreChat connects to remote MCP servers over streamable-http or SSE, with custom headers set in librechat.yaml, or with an API Key authentication option when a user adds a server from MCP Settings in the UI. | LibreChat docs: MCPRead Oct 30, 2026 |
| Does it publish without asking? | Your choice: autopilot, or approve each article by email. | No. write_article defaults to publish: false, and the tool descriptions tell the agent to ask first. | MCP docsPaperboy docs |
| Fact check | Every number and cited sentence is compared with the saved text of its source. An article that fails gets one rewrite, then is held for you. | The same engine and the same check. The verdict comes back to the agent: verified, or held with the reason. | How the check worksPaperboy docs |
| What it costs | Plans from $49 a month per site. The first article is free, no card. | Credits: 12 per article, 1 per topic suggestion, 2 per fact check. $20 buys 100. | CreditsPaperboy docs |
| Search Console | Optional read-only Search Console connection. It picks topics from your impressions and reports clicks per article. | get_performance and get_queries return the same read-only data, by day, by article and by query. | Security and dataPaperboy docs |
Facts about LibreChat come from the pages linked in the Source column, read on the date shown. Tools change their docs, so confirm there if a step does not match.
Honest notes
Quirks of this client that can cost you an afternoon.
Changes to librechat.yaml need a restart. Servers added from MCP Settings in the UI do not, but they can only reach remote URLs and cannot use server environment variables or user profile placeholders.
The Authorization header with ${PAPERBOY_API_KEY} shares one key for every user of your LibreChat instance. To make each user enter their own key, use the per-user option (Each user provides their own key in the UI, or customUserVars in librechat.yaml).
Pick a model that supports tool calling and enable paperboy for each conversation. A server that is not selected under MCP Servers in the composer is not offered to the model.
Calls to write_article start a job and return an article id at once. Ask the model to poll get_article, because LibreChat's default request timeout is 60000 milliseconds and an article takes a few minutes.
FAQ
In librechat.yaml, set headers with Authorization: "Bearer ${PAPERBOY_API_KEY}" for a streamable-http server. In the UI, choose the API Key authentication option with the Bearer header format.
Set type: streamable-http (http is an alias). LibreChat's docs say the type is auto-detected from the url when omitted, but setting it removes the guesswork.
Yes. The docs describe customUserVars, where users enter their own credentials that you reference as {{VARIABLE_NAME}} in headers, and an Each user provides their own key option in the UI.
Servers must be turned on per conversation. Click the + palette (Attach and tools) and choose paperboy under MCP Servers. If you edited librechat.yaml, restart LibreChat first.
The tools that read cost nothing. Suggesting topics costs 1 credit, writing a fact-checked article costs 12 credits (refunded if the run fails) and a fact check on its own costs 2 credits. A pack is $20 for 100 credits.
Only if you let it. write_article defaults to publish: false, so a finished article waits for a human, and the tool descriptions tell the agent to ask before publishing. You can also give the agent a read-only key.
Sources
Everything about LibreChat comes from the pages below, read on Oct 30, 2026. Tools change their docs, so check there if a step does not match. If we got something wrong, write to hello@paperboyseo.com.
Keep going
Add the MCP server, ask for a topic, and read the fact check before anything goes live.
claude mcp add --transport http paperboy https://paperboyseo.com/mcp --header "Authorization: Bearer pb_live_..."npx @paperboyseo/cli coming soonPrefer the dashboard? Write my first article free. Prefer to run it yourself? Self-host it (repo coming soon).