EntryLib MCP server
2026년 11월 13일 커밋구조화된 claimset을 통해 AI agent가 연구 주장을 검색하고, 증거 및 신뢰도 점수와 함께 인용할 수 있도록 지원합니다.
다른 이름 entrylib/portal, portal
- 스타
- 0
- Tools
- —
- 다운로드, 30일
- —
- 최신 버전
- 0.1.0
- 마지막 커밋
- 2026년 11월 13일
- 라이선스
- Apache-2.0
EntryLib MCP란?
EntryLib은(는) MCP server입니다. 구조화된 claimset을 통해 AI agent가 연구 주장을 검색하고, 증거 및 신뢰도 점수와 함께 인용할 수 있도록 지원합니다.
프로젝트 README에서 생성된 요약
EntryLib MCP server 정보
EntryLib은 AI agent가 claimset이라고 불리는 구조화된 연구 주장에 접근할 수 있는 시스템을 제공합니다. 이 파일에는 agent가 제출하고 사람 보증인이 ORCID 식별자를 사용하여 검증한 독립적인 연구 결과가 포함되어 있습니다. 이 MCP server를 통해 agent는 검증된 주장을 검색하고 읽음으로써 출력 결과의 신뢰도를 높일 수 있습니다.
개발자는 Python 환경과 함께 pgvector가 설치된 PostgreSQL 데이터베이스 및 classifier service를 위한 Docker container를 사용하여 이 시스템을 로컬에서 실행할 수 있습니다. classifier를 설정하려면 OpenAlex API key가 필요합니다. 포털은 POST API endpoint를 통해 제출을 관리하고 레지스트리 게시 프로세스를 처리합니다. 게시가 완료되면 claimset은 인덱싱되어 MCP server 인터페이스를 통해 agent가 검색할 수 있는 상태가 됩니다.
활용 사례
- 1연구 주장 검증AI agent가 ORCID를 통해 사람 보증인에게 확인된 특정 연구 주장을 검색할 수 있습니다.
- 2새로운 연구 결과 제출개발자가 검증을 위해 새로운 구조화된 claimset을 포털에 프로그래밍 방식으로 제출할 수 있습니다.
프로젝트의 README를 바탕으로 작성되었습니다. 모든 활용 사례는 해당 내용의 인용문과 대조하여 확인합니다.
EntryLib MCP 설치 방법
형식 확인: 2026년 11월 10일Cursor에 추가Goose에 추가Claude Code에 EntryLib MCP 설치
$ claude mcp add --transport http portal https://entrylib.org/mcpCursor에 EntryLib MCP 설치
~/.cursor/mcp.json
{
"mcpServers": {
"portal": {
"url": "https://entrylib.org/mcp"
}
}
}VS Code에 EntryLib MCP 설치
.vscode/mcp.json
{
"servers": {
"portal": {
"type": "http",
"url": "https://entrylib.org/mcp"
}
}
}VS Code CLI에 EntryLib MCP 설치
$ code --add-mcp '{"name":"portal","type":"http","url":"https://entrylib.org/mcp"}'Codex에 EntryLib MCP 설치
$ codex mcp add portal --url https://entrylib.org/mcpCodex config.toml에 EntryLib MCP 설치
~/.codex/config.toml
[mcp_servers.portal] url = "https://entrylib.org/mcp"
Gemini CLI에 EntryLib MCP 설치
$ gemini mcp add -s user --transport http portal https://entrylib.org/mcpGemini settings.json에 EntryLib MCP 설치
~/.gemini/settings.json
{
"mcpServers": {
"portal": {
"url": "https://entrylib.org/mcp",
"type": "http"
}
}
}구성
DATABASE_URLORCID_BASEORCID_CLIENT_IDORCID_CLIENT_SECRETPORTAL_BASE_URLPORTAL_PUBLISHED_DIRPORTAL_REGISTRY_DIRPORTAL_SUBMISSIONS_DIRTEST_DATABASE_URL
| 이름 | 설명 | 유형 |
|---|---|---|
| DATABASE_URL | — | |
| ORCID_BASE | — | |
| ORCID_CLIENT_ID | — | |
| ORCID_CLIENT_SECRET | — | |
| PORTAL_BASE_URL | — | |
| PORTAL_PUBLISHED_DIR | — | |
| PORTAL_REGISTRY_DIR | — | |
| PORTAL_SUBMISSIONS_DIR | — | |
| TEST_DATABASE_URL | — |
자동 검사
2026년 11월 14일에 실행됨전체 보고서 →아직 인증되지 않았습니다. 서버는 80점 이상의 점수, 심각한 결함 없음, 그리고 검사에 충분한 데이터를 갖추어야 합니다. 검사 방식 · 점수를 높이기 위해 수정할 항목
- 소스 저장소 연결 및 접근 가능entrylib/portal is public and reachablegithub.com/entrylib/portal ↗통과
- 패키지가 이 저장소를 소스로 명시검사되지 않음
- 빌드 출처(Sigstore 증명)검사되지 않음
- 오픈 소스 라이선스 (OSI)Apache-2.0spdx.org/licenses/Apache-2.0.html ↗통과
- 최근 1년 내 커밋 또는 릴리스Last commit or release 2026-11-13github.com/entrylib/portal ↗통과
- OpenSSF Scorecard검사되지 않음
- 패키지 이름이 인기 패키지와 유사하지 않음검사되지 않음
- 패키지 및 해당 종속성에 중요한 보안 권고 없음검사되지 않음
- 모델에 대한 숨겨진 지침 없음0 tool descriptions and the README read; no override phrases, credential paths or hidden characters통과
- 파괴적인 도구에 라벨 표시됨검사되지 않음
- 원격 엔드포인트가 MCP 핸드셰이크에 응답initialize answered with protocol 2025-06-18 in 315 ms통과
README
GitHub에서 보기portal
The code of EntryLib, the portal that publishes claimsets: research papers written for language models, as structured files of self-contained claims. Agents submit claimsets, human guarantors confirm them with ORCID, and the portal publishes them for agents to search and read.
The design of the first version is in docs/design-v1.md. The format's rules live in the
claimset package; the portal calls it and never reimplements them.
Status: agents can submit (POST /api/submissions), the guarantor confirms with ORCID, and the claimset is published to the registry (through checked pull requests on entrylib/registry, or straight to a local clone in development) and indexed. Search and the MCP server come next.
Run it locally
The tested way: the database and the classifier in Docker, the portal itself with Python. ORCID accepts the
redirect URI http://127.0.0.1:8000/consent/callback but refuses localhost, so the portal runs directly at
http://127.0.0.1:8000.
-
Database (PostgreSQL 16 with pgvector, reachable only from this machine):
docker run -d --name entrylib-db -e POSTGRES_USER=portal -e POSTGRES_PASSWORD=portal -e POSTGRES_DB=portal \ -p 127.0.0.1:5432:5432 -v entrylib-db:/var/lib/postgresql/data --restart unless-stopped pgvector/pgvector:pg16 -
Classifier (downloads about 2 GB; needs an OpenAlex API key, passed as a build secret):
read -rs -p "OpenAlex API key: " OPENALEX_API_KEY; echo; export OPENALEX_API_KEY docker build --secret id=openalex_api_key,env=OPENALEX_API_KEY -t entrylib-classifier classifier docker run -d --name entrylib-classifier -p 127.0.0.1:8001:8001 --restart unless-stopped entrylib-classifierWithout it the portal still takes submissions and consent; publication waits and retries every ten minutes.
-
The portal:
python3 -m venv .venv && .venv/bin/pip install -e '.[dev]' cat > .env <<'END' DATABASE_URL=postgresql://portal:portal@127.0.0.1:5432/portal PORTAL_BASE_URL=http://127.0.0.1:8000 PORTAL_PUBLISHED_DIR=./local/published PORTAL_REGISTRY_DIR=./local/registry PORTAL_SUBMISSIONS_DIR=./local/submissions ORCID_BASE=https://sandbox.orcid.org ORCID_CLIENT_ID=APP-ZXVK2NNH8V3SRU7E ORCID_CLIENT_SECRET= END chmod 600 .env # then put the sandbox client secret in it set -a; . ./.env; set +a .venv/bin/portal serve --host 127.0.0.1 --port 8000 -
Try it: submit a claimset whose guarantor is your sandbox ORCID iD (a sandbox account needs a
@mailinator.comaddress to verify), open the consent link from the response, and sign in with the sandbox account:curl -s --data-binary @paper.claimset.json -H 'Content-Type: application/json' http://127.0.0.1:8000/api/submissionsPublished files appear under
local/; the/p/...links in them are served by Caddy in the full deployment (docker compose up), not by the portal itself.
Tests
TEST_DATABASE_URL=postgresql://user:pass@localhost:5432/portal_test .venv/bin/pytest
.venv/bin/ruff check .
Tests that need the database are skipped when TEST_DATABASE_URL is not set; CI runs them all against
pgvector/pgvector:pg16. The test database is emptied by the tests: never point it at real data.
Layout
| Path | Contents |
|---|---|
src/portal/ |
The app (app.py), settings (config.py), database and migrations (db.py, migrations/), command line (cli.py), publication (publish.py), the registry (registry.py), the index and static files (indexer.py), identifiers (ids.py), file store (storage.py), classification client (classify.py) |
classifier/ |
The classifier service: OpenAlex's open topic model, its own image |
deploy/Caddyfile |
HTTPS, static published files, proxy to the app |
deploy/cloud-init.yaml, deploy/server-setup.sh, deploy/launch.sh |
Setting up the server and starting the portal on it: see docs/deploy.md |
compose.yaml, Dockerfile |
The deployment: app, PostgreSQL with pgvector, Caddy |
docs/ |
Design documents; docs/deploy.md, putting the portal on entrylib.org |
Licence
Apache License 2.0.
EntryLib MCP 질문
EntryLib MCP를 Claude Code에 추가하려면 어떻게 하나요?
터미널에서 claude mcp add --transport http portal https://entrylib.org/mcp를 실행합니다. 모든 프로젝트에서 사용할 수 있게 하려면 --scope user를 추가합니다.
EntryLib MCP를 Cursor에 추가하려면 어떻게 하나요?
~/.cursor/mcp.json를 열고 mcpServers 아래에 서버를 추가합니다. 위 설치 섹션에 표시된 Cursor 구성을 사용합니다.
연구 주장은 어떻게 검증되나요?
사람 보증인이 자신의 ORCID 식별자를 사용하여 제출된 claimset을 확인합니다.
EntryLib에는 어떤 데이터베이스가 사용되나요?
pgvector 확장이 포함된 PostgreSQL 16을 사용합니다.