プロトタイプ · プレビュー版:公式レジストリのすべてのサーバーを掲載し、30分ごとに同期しています。レビューとアカウント機能は今後のステップで始まります。
PopNx MCPAIを使う人のためのMCPサーバー · やさしい言葉で解説

Papers by Ouroboros Apps

作者:LAHutchins91バージョン 1.0.1i★ –iクラウドで動く
レジストリ名io.github.LAHutchins91/papers

インストール

概要

作者による説明(英語の原文)

Research paper search with real citations and reference formatting for AI assistants

PopNx MCPの3つの柱

この3つを1つのスコアにまとめることはしません。意見、測定、人気はそれぞれ別のものだからです。

できること

このサーバーのやさしい解説はまだ書いていません。以下はレジストリから読み取った事実です。

  • 接続方法: クラウドで動く
  • トランスポート: Streamable HTTP
  • カテゴリ: 検索・AIの記憶

インストール

使っているAIアプリを選んで、設定をコピーしてください。

インストールの前に

  • 基本チェック:1項目中1項目に合格
  • 作者のサーバーで動きます。あなたが頼んだ内容は、作者のサーバーを通ります。
  • レジストリには、入力が必要なキーは載っていません。

必要なもの

どのアプリを使っていますか?

上でアプリを選んでください。選んだアプリを覚えておくので、次からはボタンに「…にインストール」と表示されます。

ウェブ、デスクトップ、モバイルのClaudeで使えます:

  1. Settings → Connectors を開く
  2. Add custom connector を押す
  3. 下のアドレスを貼り付けて Add を押す
  4. サインインを求められたら、作者のサービスにサインインする
SettingsConnectors1+ Add2https://…3
https://papers-mcp.vercel.app/mcp

ターミナルでこれを実行します

claude mcp add --transport http papers https://papers-mcp.vercel.app/mcp

Cursorで開く

または、設定を自分でコピーする

プロジェクトの .cursor/mcp.json、または ~/.cursor/mcp.json に貼り付けます

{
  "mcpServers": {
    "papers": {
      "url": "https://papers-mcp.vercel.app/mcp"
    }
  }
}

ブラウザがアプリを開いてよいか確認し、そのあとアプリが設定を表示して確認を求めます。キーの値は空欄のままなので、自分で入力してください。

VS Codeで開く

または、設定を自分でコピーする

プロジェクトの .vscode/mcp.json に貼り付けます

{
  "servers": {
    "papers": {
      "type": "http",
      "url": "https://papers-mcp.vercel.app/mcp"
    }
  }
}

ブラウザがアプリを開いてよいか確認し、そのあとアプリが設定を表示して確認を求めます。キーの値は空欄のままなので、自分で入力してください。

ChatGPTがつなげるのは、インターネット上のサーバーだけです:

  1. ウェブ版のChatGPTを開き → Settings → Connectors (Apps)
  2. Create または Add を押す(プランによっては、先に Advanced で Developer mode をオンにする必要があります)
  3. 下のアドレスを貼り付け、名前を付けて保存する
  4. サインインを求められたら、作者のサービスにサインインする
SettingsConnectors1+ Create2https://…3
https://papers-mcp.vercel.app/mcp

メニューの名前は、プランや時期によって少し違うことがあります。

選んだアプリは、この端末のCookieに保存されます。アカウントは不要です。

この設定は、作者のレジストリ登録情報から作成しています。READMEと違う場合は、READMEに従ってください。

できること

このサーバーのツール一覧はまだ読み取っていません。エンドポイントは順番にチェックしています。

基本チェックi

誰でも見られる情報をチェックしており、コードは読んでいません。当てはまらない項目は数に入れていません。 · 2026年11月7日にチェック

  • ✓ 合格

    作者とリポジトリが一致

    レジストリ名は、リポジトリを所有するGitHubアカウント LAHutchins91 で確認済みです

  • … 未チェック

    今もメンテナンスされている

    このリポジトリはまだGitHubから読み取っていません

  • … 未チェック

    ライセンスがある

    このリポジトリはまだGitHubから読み取っていません

  • … 未チェック

    エンドポイントが応答する

    まだチェックしていません。エンドポイントは順番にチェックしています

  • … 未チェック

    OAuthでサインイン

    まだチェックしていません。エンドポイントは順番にチェックしています

  • … 未チェック

    ツールの説明に隠れた指示がない

    まだチェックしていません。エンドポイントをチェックするときにツール一覧を読み取ります

検索・AIの記憶のほかのサーバーとの比較i

  • このカテゴリのほかの7277件のうち0%よりスターが多い
  • このカテゴリのほかの7277件のうち56%より最近レジストリに公開
  • 基本チェックの結果が、このカテゴリのほかの7277件のうち100%と同じかそれ以上

レジストリでこのカテゴリにある有効なすべてのサーバーと比較しています。スターは、公開者がリポジトリの所有者である場合だけ数えます。

よくある質問

Papers by Ouroboros Appsは安全ですか?

当てはまる基本チェック1項目のうち1項目に合格しました。コードは読んでいません。キーやトークンを追加する前に、サーバーがどんなアクセスを求めているかを確認し、必要な権限だけを持つキーを使ってください。

どんなキーやコードが必要ですか?

レジストリには必須のキーは載っていません。ただし、最初に使うときにサインインを求めるサーバーもあります。

パソコンで動きますか、それともクラウドですか?

作者のクラウドで動きます。インストール不要でインターネット経由でつながりますが、送った内容は作者のサーバーを通ります。

今もメンテナンスされていますか?

GitHubリポジトリの最終更新は–、最新バージョン(1.0.1)がレジストリに届いたのは29 日前です。

どのアプリで使えますか?

Claude Desktop、Claude Code、Cursor、VS CodeなどのMCP対応アプリで使えます。URLでつながるので、リモートMCPサーバーに対応したアプリ(開発者モードのChatGPTなど)でも使えます。

代わりに使えるものは?

同じカテゴリには:Context7, Codebase Memory, Exa

代わりの候補

同じカテゴリで、ほかの作者が作ったサーバー。スターの多い順。

カードの見方:★ GitHubスターi3つの柱:レビュー · チェック · 利用状況i更新=最新バージョンをレジストリに公開した日i

Context7

作者:upstash

Up-to-date docs for AI agents

パソコンでもクラウドでも★ 64,224MIT昨日更新
インストール

Codebase Memory

作者:DeusData

Codebase knowledge graph for AI agents — 162 languages, sub-ms queries, 99% fewer tokens.

パソコンで動く★ 48,148MIT21 日前更新
インストール

Exa

作者:exa-labs

Connect AI agents to Exa for web search, content fetching, and multi-step research.

クラウドで動く★ 5,213MIT先月更新
インストール

作者のREADME

READMEを開く

作者のリポジトリから書かれたとおりにコピーしたものです。PopNx MCPは内容を確認・推奨していません。HTML、画像、スクリプトは取り除いています。リンクはこのサイトの外へ移動します。

Papers by Ouroboros

Papers by Ouroboros is a remote MCP server for students, researchers, writers, and clinicians who want an assistant to search and cite real papers. It is a lighter, independent alternative to Consensus, SciSpace, and Elicit.

The assistant can search OpenAlex, Semantic Scholar, PubMed, Crossref, and arXiv, open a paper by DOI, PMID, or arXiv id, see what cites a paper or what that paper cites, and format APA, MLA, Chicago, or BibTeX. Every result includes a source link and an identifier that came back from one of those APIs. If an API returns nothing, Papers returns nothing. It does not fill gaps with invented citations.

  • Works with ChatGPT, Claude, Gemini, Grok, Cursor, and any client that speaks Streamable HTTP plus OAuth 2.1 (dynamic client registration and PKCE)

Hosted server

  • MCP server URL: https://papers-mcp.vercel.app/mcp (live, Streamable HTTP, OAuth sign-in)
  • Health: https://papers-mcp.vercel.app/health
  • Protected-resource metadata: https://papers-mcp.vercel.app/.well-known/oauth-protected-resource
  • Connect guide: https://papers-mcp.vercel.app/connect
  • Docs: https://ouroborosapps.com/docs/papers
  • Registry name: io.github.LAHutchins91/papers (server.json points remotes[0].url at the hosted URL above)

If you self-host, the MCP endpoint is https:// /mcp. Set APP_BASE_URL to that origin and change remotes[0].url in your copy of server.json.

Connect

Leave the client id and secret empty so the client can register itself.

Cursor, in ~/.cursor/mcp.json or a project .cursor/mcp.json:

{

"mcpServers": { "papers": { "url": "https://papers-mcp.vercel.app/mcp" } } }

Claude Code:

claude mcp add --transport http papers https://papers-mcp.vercel.app/mcp

Other clients: add the same URL and choose OAuth. The consent screen names the assistant and the papers scope. Tool discovery (initialize, tools/list, ping) does not require a token. Calling a tool does.

Tools

  • search_papers — question or keywords, with optional year range, field, open-access flag, and source (openalex, semantic_scholar, pubmed, crossref, arxiv, or all)
  • get_paper — one record and its abstract, by DOI, PMID, arXiv id, or OpenAlex work id
  • find_related_papers — cited_by or references for that identifier
  • format_citation — apa, mla, chicago, or bibtex from the fetched metadata

Titles are kept as the source wrote them. Author names are split from display names, so particles such as “van” can land in the wrong part and deserve a look before you publish the citation.

Permissions, data, and limits

OAuth scope. One scope, papers. The consent screen names the assistant and that scope. It grants tool calls on this server only. It gives no access to any other account, file, or service.

Operations. All four tools are read-only lookups against public scholarly APIs (readOnlyHint: true, destructiveHint: false). There are no write or delete operations. Papers does not create, change, or remove anything on your behalf, outside the server, or in the scholarly sources.

Confirmations. Because nothing is written or deleted, no tool asks for a confirmation step. The only confirmations are the OAuth consent screen when you connect and Stripe Checkout when you start a trial.

Storage, retention, and privacy. Papers does not keep a log or history of queries. A search or identifier goes to the scholarly source that answers it and is not retained after the response. Papers stores a random account id (cookie 90 days, access token 1 hour, refresh token 30 days), single-use authorization code ids until they expire (5 minutes), and, after you start a trial, a subscription snapshot (account id, Stripe customer id, subscription id, status, period end, plan interval). Rate-limit counters are held in memory for about one to ten minutes. Connecting does not ask for your name or email. Export or deletion requests go to ouroborosplugins@gmail.com. Full policy: https://papers-mcp.vercel.app/privacy

Free limits. Tool discovery (initialize, tools/list, ping) is open. Tool calls need a 14-day trial started through Stripe Checkout, then a Pro subscription. Stripe shows the amount; this repository does not list one. Each client IP is limited to 300 MCP requests per minute. The upstream APIs also apply their own rate limits (see Rate limits below).

How it is used. A typical session: the user asks a research question, the assistant calls search_papers, opens one or two results with get_paper, follows find_related_papers to see what cites them, and finishes with format_citation in the style the user needs. Every record in the answer links back to the source that returned it.

Trial and billing

Start a 14-day trial from the account page after you connect an assistant. Stripe Checkout is the only place an amount is shown. Monthly and yearly plans use the price ids you configure. Papers does not create Stripe products.

When STRIPE_SECRET_KEY, STRIPE_PRICE_MONTHLY, and STRIPE_PRICE_YEARLY are all set, tool calls require a Stripe subscription in trialing or active status. When they are not set, GET /health reports billingConfigured: false and an OAuth-signed caller can use the tools. Set the Stripe variables before you expose a deployment publicly.

Storage

Paper search is stateless. Subscription snapshots and used authorization-code ids share one store:

STORAGE_BACKENDBehavior
memory (default)Process-local. Fine for tests and a single Node process. A second process can still accept a code this process already used.
fileOne JSON document at STORAGE_PATH (default data/accounts.json). For a single Docker host.
blobOne private Vercel Blob at STORAGE_BLOB_PATH (default papers/accounts.json). Use this on Vercel so a code cannot be replayed across instances. Requires BLOB_READ_WRITE_TOKEN.

The document is { accounts, usedCodes }. Each account is { userId, stripeCustomerId, subscriptionId, subscriptionStatus, currentPeriodEnd, plan, updatedAt }. usedCodes maps an authorization-code id to its expiry, in unix seconds. Expired ids are dropped on every write. An older file that is only a map of accounts is still read. There is no separate database schema. When billing is configured, Stripe is the source of truth: a cold process looks the customer up by metadata.papers_user_id if the snapshot is missing.

OAuth access tokens and client registrations are signed tokens, not rows. Set AUTH_SIGNING_SECRET in production so tokens survive a restart. On Vercel, set STORAGE_BACKEND=blob before the deployment is public.

Environment

VariableRequiredPurpose
APP_BASE_URLProductionPublic origin, no trailing slash. OAuth issuer and MCP audience.
AUTH_SIGNING_SECRETProductionHMAC secret for OAuth tokens and the account cookie.
SCHOLARLY_CONTACT_EMAILProductionMailto address in User-Agent and polite-pool parameters for OpenAlex, Crossref, and PubMed. Not shown on the public pages.
REVIEWER_LOGIN_EMAILFor store reviewEmail typed on Reviewer sign-in. See below.
REVIEWER_LOGIN_PASSWORD_HASHFor store reviewscrypt hash of the reviewer password. See below.
COMP_ACCOUNT_EMAILSFor store reviewComma-separated emails with permanent complimentary access.
COMP_ACCOUNT_IDSNoComma-separated account ids with permanent complimentary access.
NCBI_API_KEYNoHigher PubMed rate limit.
SEMANTIC_SCHOLAR_API_KEYNoHigher Semantic Scholar rate limit. Sent as x-api-key.
STRIPE_SECRET_KEYTo chargeStripe secret key.
STRIPE_PRICE_MONTHLYTo chargeExisting monthly price id.
STRIPE_PRICE_YEARLYTo chargeExisting yearly price id.
STRIPE_WEBHOOK_SECRETTo chargeWebhook signature secret. Point Stripe at POST /billing/webhook.
STORAGE_BACKENDNomemory, file, or blob.
STORAGE_PATHNoJSON file used when the backend is file.
STORAGE_BLOB_PATHNoBlob pathname when the backend is blob. Defaults to papers/accounts.json.
BLOB_READ_WRITE_TOKENWith blobRead-write token for the Vercel Blob store. The SDK reads this itself.
PORTNoDefaults to 43127.

Do not commit secrets. Copy what you need into the host’s environment, not into the repo.

Run locally

npm install

npm run dev

Open http://127.0.0.1:43127. Health is GET /health.

npm test

npm run typecheck

Tests call the public APIs that do not need keys. Stripe is not called. Semantic Scholar often answers 429 from shared IP space; the tool reports that rate limit and does not substitute a made-up paper.

Deploy

Vercel: vercel.json builds api/index.ts and routes every path to that function, including logo.jpg in the function bundle. Repository files such as /package.json and /src/* are not served as static files. Set the environment variables above, set APP_BASE_URL to the deployment origin, set STORAGE_BACKEND=blob, and update server.json remotes[0].url to https:// /mcp. Create the Blob store in the Vercel project and leave its read-write token in BLOB_READ_WRITE_TOKEN. Stripe’s webhook endpoint is POST /billing/webhook.

Docker:

docker build -t papers-mcp .

docker run --rm -p 43127:43127 -e APP_BASE_URL=http://127.0.0.1:43127 -e AUTH_SIGNING_SECRET=replace-me -e SCHOLARLY_CONTACT_EMAIL=you@example.com papers-mcp

The container listens on 43127.

Rate limits

Requests are spaced per host: OpenAlex about 10/s, Crossref about 4/s, PubMed about 3/s without an NCBI key, Semantic Scholar about 1/s without a key, and arXiv at least 3 seconds between calls. A descriptive User-Agent is always sent. The contact email is included only when SCHOLARLY_CONTACT_EMAIL is set.

License

MIT. Copyright Lawrence Hutchins. See LICENSE.


Contact

Public support, privacy, export, and deletion: ouroborosplugins@gmail.com

  • Privacy: /privacy
  • Terms: /terms
  • Support: /support
  • Site: https://ouroborosapps.com

The public pages always show that mailbox. SCHOLARLY_CONTACT_EMAIL is sent only in scholarly API polite-use headers. It is not printed on the site. SUPPORT_EMAIL is not read.

server.json, glama.json, and .cursor-plugin/plugin.json have no contact-email field. The registry schema used by server.json does not define one.

Store-reviewer sign-in

Reviewers sign in on the OAuth consent screen with Reviewer sign-in. There is no separate sign-up, no second factor, and no card. Set these on the host (Vercel project → Settings → Environment Variables), for Production and for any Preview URL a reviewer will open. Do not commit the values.

VariableFormat
REVIEWER_LOGIN_EMAILOne email address, the value the reviewer types. Lowercased when compared.
REVIEWER_LOGIN_PASSWORD_HASHOne line: scrypt$16384$8$1$ $ . Salt is 16 bytes. Hash is 32 bytes. scrypt parameters are N=16384, r=8, p=1.
COMP_ACCOUNT_EMAILSComma-separated emails. Include REVIEWER_LOGIN_EMAIL. Each email grants a permanent entitlement to the stable account id derived from it.
COMP_ACCOUNT_IDSOptional comma-separated account ids. Use the derived reviewer id, or an anonymous account id you want to comp.

Login checks the email and password hash. The allowlist is what skips the trial and Stripe. Set COMP_ACCOUNT_EMAILS to the same address as REVIEWER_LOGIN_EMAIL, or put the derived id in COMP_ACCOUNT_IDS. A normal anonymous account is unchanged and still needs a trial when billing is configured.

Generate the hash (the password is an argument, not a file in the repo):

node --i

冒頭だけを表示しています。続きはリポジトリで読めます

PopNxに聞く