Skip to main content
Glama

Server Configuration

Describes the environment variables required to run the server.

NameRequiredDescriptionDefault
POSTGRES_DBNoDatabase namepaperlib
S3_ENDPOINTNoMinIO endpointhttp://localhost:9000
POSTGRES_HOSTNoDatabase hostlocalhost
POSTGRES_USERNoDatabase userpaper
MINIO_ROOT_USERNoMinIO userminio
POSTGRES_PASSWORDNoDatabase passwordpaper
OPENROUTER_API_KEYYesOpenRouter API key
MINIO_ROOT_PASSWORDNoMinIO passwordminio123

Tools

Functions exposed to the LLM to take actions

NameDescription
health_check

检查系统健康状态

验证数据库连接、S3/MinIO 存储桶访问以及必要的数据库扩展是否正常。

Returns: 健康状态信息,包含: - ok: 整体状态是否正常 - db: 数据库连接状态 - s3: S3/MinIO 存储状态

import_pdf

导入 PDF 文献到知识库

ingest_status

查看导入状态

查看指定文档或作业的导入状态,包括各阶段进度和错误信息。

Args: doc_id: 文档 ID(通过 doc_id 查询最新作业) job_id: 作业 ID(直接查询特定作业)

Returns: 导入状态信息,包含各阶段状态、错误摘要和建议修复动作

search_hybrid

混合搜索文献库

使用全文搜索(FTS)和向量相似度搜索的组合,找到与查询最相关的文本块。

Args: query: 搜索查询字符串 k: 返回结果数量,默认 10 alpha: 向量搜索权重(0-1),默认 0.6。FTS 权重为 1-alpha per_doc_limit: 每篇文档最多返回的 chunk 数量,默认 3(避免单篇论文刷屏) fts_topn: FTS 候选数量,默认 50 vec_topn: 向量候选数量,默认 50

Returns: 搜索结果,包含: - results: 按相关性排序的 chunk 列表 - fts_candidates: FTS 候选数量 - vec_candidates: 向量候选数量

explain_search

详细解释搜索结果

执行混合搜索并返回详细的解释信息,包括 FTS-only 命中、向量-only 命中、交集命中等。 用于调试和优化搜索参数。

Args: query: 搜索查询字符串 k: 返回结果数量,默认 10 alpha: 向量搜索权重(0-1),默认 0.6 per_doc_limit: 每篇文档最多返回的 chunk 数量,默认 3 fts_topn: FTS 候选数量,默认 50 vec_topn: 向量候选数量,默认 50

Returns: 详细的搜索解释,包含: - final_results: 最终 top-k 结果 - fts_only_hits: 仅 FTS 命中的结果 - vec_only_hits: 仅向量命中的结果 - intersection_hits: 两者都命中的结果 - stats: 统计信息

search_vector_only

纯向量搜索

仅使用向量相似度搜索,适合语义相关但关键词不匹配的场景。

Args: query: 搜索查询字符串 k: 返回结果数量,默认 10

Returns: 搜索结果列表

search_fts_only

纯全文搜索

仅使用 PostgreSQL 全文搜索,适合精确关键词匹配的场景。

Args: query: 搜索查询字符串(支持布尔运算符) k: 返回结果数量,默认 10

Returns: 搜索结果列表

get_chunk

获取指定 chunk 的完整内容

根据 chunk_id 获取文本块的完整信息,包括全文、页码、所属文档等。

Args: chunk_id: chunk 的唯一标识符

Returns: chunk 的详细信息,包含: - chunk_id: chunk ID - doc_id: 所属文档 ID - text: 完整文本 - page_start/page_end: 页码范围 - has_embedding: 是否有 embedding

get_document

获取指定文档的元数据和统计信息

根据 doc_id 获取文档的完整元数据,包括标题、作者、chunk 数量等。

Args: doc_id: 文档的唯一标识符(SHA256 哈希)

Returns: 文档的详细信息,包含: - 元数据:title, authors, year, venue, doi, url - 存储信息:pdf_bucket, pdf_key - 统计:chunk_count, embedded_chunk_count, total_tokens

get_document_chunks

获取指定文档的所有 chunks 列表

根据 doc_id 获取该文档的所有文本块摘要信息。

Args: doc_id: 文档的唯一标识符

Returns: chunks 列表,每个包含 chunk_id、页码和文本摘要

list_documents

列出所有已导入的文档

获取文献库中所有文档的摘要列表,支持排序和筛选。

Args: limit: 返回结果数量限制,默认 50 offset: 分页偏移量,默认 0 order_by: 排序字段,可选 "created_at"(默认)、"year"、"title" has_embeddings: 筛选条件,True=只显示有完整embedding的,False=只显示缺embedding的,None=显示全部

Returns: 文档列表,包含基本信息和 chunk/embedding 统计

delete_document

删除指定文档

从数据库删除文档及其所有关联数据(chunks、embeddings、导入记录等)。 可选择同时删除 MinIO 中的 PDF 文件。

Args: doc_id: 文档的唯一标识符 also_delete_object: 是否同时删除 MinIO 中的 PDF 文件,默认 False

Returns: 删除结果,包含删除的记录数量

update_document

更新指定文档的元数据

根据 doc_id 更新文档的元数据信息。只有提供的字段会被更新, 未提供的字段保持原值不变。

Args: doc_id: 文档的唯一标识符(SHA256 哈希) title: 新的论文标题 authors: 新的作者列表 year: 新的发表年份 venue: 新的期刊/会议名称 doi: 新的 DOI 标识符 url: 新的论文链接

Returns: 更新结果,包含: - success: 是否成功 - doc_id: 文档 ID - updated_fields: 更新的字段列表 - document: 更新后的文档信息

reembed_document

重新生成文档的 embedding

为文档的 chunks 生成 embedding。默认只处理缺失 embedding 的 chunks, 设置 force=True 可重新生成所有 embedding。

Args: doc_id: 文档的唯一标识符 batch_size: 批处理大小,默认 64 force: 是否强制重新生成所有 embedding,默认 False

Returns: 处理结果,包含处理的 chunk 数量

rechunk_document

重新分块文档

从 MinIO 获取 PDF,重新提取文本并分块,然后生成新的 embeddings。 会删除旧的 chunks 和 embeddings。

Args: doc_id: 文档的唯一标识符 strategy: 分块策略,目前支持 "page_v1"(按页分块) force: 是否强制执行(即使已有 chunks),默认 False

Returns: 处理结果,包含新的 chunk 数量

build_evidence_pack

构建证据包

搜索与主题相关的文献片段,并保存为可复用的证据包。 证据包可用于多次迭代综述写作,避免每次重新检索导致结果漂移。

Args: query: 搜索主题/研究问题 k: 检索数量,默认 40 per_doc_limit: 每篇文档最多返回的 chunk 数量,默认 3 alpha: 向量搜索权重,默认 0.6

Returns: 证据包信息,包含 pack_id 和检索到的条目

get_evidence_pack_info

获取证据包详情

查看已保存的证据包内容和统计信息。

Args: pack_id: 证据包 ID

Returns: 证据包详情

list_evidence_packs

列出所有证据包

查看已保存的证据包列表。

Args: limit: 返回数量限制,默认 20 offset: 分页偏移量,默认 0

Returns: 证据包列表

draft_lit_review_v1

生成文献综述草稿

基于指定主题或已有证据包,按照学术标准结构组织成综述草稿。

Args: topic: 综述主题/研究问题(如果提供 pack_id 则可选) pack_id: 已有证据包 ID(如果提供则直接使用,不重新检索) k: 检索的相关 chunk 数量(仅当未提供 pack_id 时使用),默认 30 outline_style: 大纲样式,可选 "econ_finance_canonical"(经济金融)或 "general"(通用)

Returns: 综述草稿,包含: - sections: 按结构组织的章节列表 - all_citations: 所有引用的文献信息 - total_sources: 引用的文献总数

draft_section

生成综述特定章节

基于证据包,只生成指定章节的内容。适合迭代写作某个特定部分。

Args: pack_id: 证据包 ID section: 章节类型,如 "methodology"、"findings"、"gaps" 等 outline_style: 大纲样式,默认 "econ_finance_canonical"

Returns: 章节内容和引用列表

get_outline_templates

获取可用的综述大纲模板

返回所有支持的文献综述结构模板。

Returns: 模板列表,每个包含名称和章节结构

collect_evidence

收集特定主题的文献证据

搜索与主题相关的文献片段,可选择聚焦于特定章节类型。

Args: topic: 搜索主题 section_focus: 聚焦的章节类型(如 "methodology", "findings") k: 返回结果数量

Returns: 按文献聚合的证据列表

graph_health_check

检查 GraphRAG 层健康状态

验证 M2 GraphRAG 所需的表和索引是否存在,并返回统计信息。

Args: include_counts: 是否包含各表的行数统计,默认 True

Returns: 健康状态信息,包含: - ok: 整体状态是否正常 - db_ok: 数据库连接状态 - tables_ok: 必要表是否存在 - indexes_ok: 必要索引是否存在 - counts: 各表行数(可选)

select_high_value_chunks

筛选高价值 chunks

从指定文档或证据包中筛选包含关键方法/识别/结果相关内容的 chunks。

Args: doc_id: 文档 ID(与 pack_id 二选一) pack_id: 证据包 ID(与 doc_id 二选一) max_chunks: 最大返回数量,默认 60 keyword_mode: 关键词模式,"default" 或 "strict"

Returns: 高价值 chunk 列表,每个包含 chunk_id、doc_id、页码和命中原因

extract_graph_v1

抽取结构化图谱要素 (Async Parallel)

从文档的 chunks 中抽取实体、关系和结论,写入 GraphRAG 表。 使用并行处理以加快速度。

Args: concurrency: 并发请求数,默认 60。OpenRouter 支持较高并发 (500 RPS)。

canonicalize_entities_v1

规范化并合并重复实体

对指定类型的实体进行规范化处理,合并同一 canonical_key 的重复实体。

Args: types: 要处理的实体类型列表,默认 ["Topic", "MeasureProxy", "IdentificationStrategy", "Method"] suggest_only: 是否只返回建议而不执行合并,默认 False max_groups: 最大处理组数,默认 5000

Returns: 合并统计信息和建议列表

lock_entity

锁定或解锁实体

锁定的实体不会被自动规范化合并。

Args: entity_id: 实体 ID is_locked: 是否锁定,默认 True

Returns: 操作结果

merge_entities

手动合并两个实体

将 from_entity 的所有引用迁移到 to_entity,然后删除 from_entity。

Args: from_entity_id: 要被合并的实体 ID to_entity_id: 目标实体 ID reason: 合并原因

Returns: 操作结果

build_communities_v1

构建主题社区

从 Paper->Entity 关系构建共现图,使用 Leiden 算法聚类。

Args: level: 社区层级,"macro" 或 "micro" min_df: 节点至少出现在 N 篇 paper,默认 3 resolution: Leiden 分辨率参数,默认 1.0 max_nodes: 最大节点数,默认 20000 rebuild: 是否重建(清除同 level 旧结果),默认 False

Returns: 社区列表,每个包含 comm_id、大小和 top entities

build_community_evidence_pack

为社区构建证据包

从社区 top entities 的 mentions 中采样 chunks,写入证据包。

Args: comm_id: 社区 ID max_chunks: 最大 chunk 数量,默认 100 per_doc_limit: 每篇文档最多 chunk 数,默认 4

Returns: 证据包信息,包含 pack_id、文档数和 chunk 数

summarize_community_v1

生成社区结构化摘要

summarize_all_communities

批量/并行生成社区摘要

Args: level: 社区层级,"macro" 或 "micro"(或整数 1/2) concurrency: 并发数,默认 5 comm_ids: 指定社区 ID 列表 force: 是否强制重新生成

export_evidence_matrix_v1

导出证据矩阵

导出 PaperMatrix(论文级)和 ClaimMatrix(结论级)两张表。

Args: comm_id: 社区 ID(与 topic 二选一) topic: 主题名称或 canonical_key(与 comm_id 二选一) format: 输出格式,"json" 或 "csv" limit_docs: 限制文档数量

Returns: paper_matrix 和 claim_matrix

graph_status

查看 GraphRAG 覆盖状态

统计每个文档(或全局)的 entities、mentions、claims 覆盖率。

Args: doc_id: 文档 ID(可选,若无则返回全局统计)

Returns: 覆盖率统计信息

extract_graph_missing

批量补跑未抽取的文档

找出没有 mentions 的文档,并对它们执行 extract_graph_v1。

Args: limit_docs: 最大处理文档数,默认 50 llm_model: LLM 模型,默认使用环境变量 LLM_MODEL 配置 min_confidence: 最小置信度阈值

Returns: 处理的文档数和文档 ID 列表

rebuild_communities

重建社区

清除指定层级的旧社区并重新构建。

Args: level: 社区层级,"macro" 或 "micro" min_df: 节点最小文档频率,默认 3 resolution: Leiden 分辨率参数,默认 1.0

Returns: 新社区列表

clear_graph

清理 GraphRAG 数据

清理指定文档或全部的 GraphRAG 数据。

Args: doc_id: 文档 ID(清理单个文档) clear_all: 是否清理全部(危险操作)

Returns: 清理结果,包含删除的记录数

generate_review_outline_data_v1

生成综述大纲(确定性,无 LLM)

从 topic 或 comm_ids 生成可复现的综述大纲结构,写入数据库。

Args: topic: 综述主题(与 comm_ids 二选一) comm_ids: 社区 ID 列表(与 topic 二选一) outline_style: 大纲样式,默认 "econ_finance_canonical" rebuild: 是否重建已存在的大纲,默认 False

Returns: outline_id, topic, sections 列表

build_section_evidence_pack_v1

构建章节证据包

为指定章节生成固定的证据包(可复现)。

Args: outline_id: 大纲 ID section_id: 章节 ID max_chunks: 最大 chunk 数量,默认 60 per_doc_limit: 每篇文档最多 chunk 数,默认 4 rebuild: 是否重建,默认 False

Returns: pack_id, chunk_count, doc_count

export_section_packet_v1

导出章节写作输入包

生成包含所有必要信息的 JSON,供 Agent 写作使用。

Args: pack_id: 证据包 ID

Returns: evidence[], paper_matrix[], claim_matrix[], doc_citations[]

lint_section_v1

验证章节引用合规

检查 Agent 写作的 markdown 是否符合引用规则。

Args: pack_id: 证据包 ID markdown: Agent 写作的 markdown 内容 require_citations_per_paragraph: 是否要求每段有引用,默认 False min_citations_per_paragraph: 每段最少引用数,默认 1

Returns: passed, issues[], stats

compose_full_template_v1

生成全文结构模板

返回按顺序排列的章节和 markdown 模板(带占位符)。

Args: outline_id: 大纲 ID

Returns: ordered_sections[], template_markdown

lint_review_v1

验证全文合规

检查完整综述是否符合所有引用规则。

Args: pack_ids: 允许的证据包 ID 列表(白名单) markdown: 完整的综述 markdown

Returns: passed, issues[], stats

canonicalize_relations_v1

规范化关系并合并重复项,保留所有证据。

Args: scope: 处理范围,"all", "doc_id:...", "comm_id:..." predicate_whitelist: 只处理这些谓词 qualifier_keys_keep: 规范化时保留哪些 qualifier 字段 dry_run: 仅计算建议,不写入数据库

export_relations_compact_v1

导出紧凑的关系视图(按 canonical 关系聚合)。

build_claim_groups_v1

对结论进行分组/聚类。

Args: scope: 处理范围,"all", "comm_id:...", "doc_ids:id1,id2" max_claims_per_doc: 每个文档最多处理多少条结论 dry_run: 是否仅预览

export_claim_matrix_grouped_v1

导出按分组聚合的结论矩阵。

taxonomy_list_terms

列出词表规则

taxonomy_upsert_term

添加或更新词表规则

compute_topic_df_cache

计算 Topic 实体的文档频率缓存

assign_claim_features_v1_2

为 claims 分配预计算特征(primary_topic, outcome/treatment family 等)

build_claim_groups_v1_2

基于 claim_features 构建 v1.2 claim groups

split_large_claim_groups_v1_2

拆分超大 claim groups (使用 TF-IDF + KMeans)

export_claim_matrix_grouped_v1_2

导出分组 claim 矩阵,每组返回 top-k 代表 claims (按 confidence 排序,sign 分层)

Prompts

Interactive templates invoked by user choice

NameDescription

No prompts

Resources

Contextual data attached and managed by the client

NameDescription

No resources

Latest Blog Posts

MCP directory API

We provide all the information about MCP servers via our MCP API.

curl -X GET 'https://glama.ai/api/mcp/v1/servers/h-lu/paperlib-mcp'

If you have feedback or need assistance with the MCP directory API, please join our Discord server