io.github.Xvvln/pdf-reader-mcp
Server Configuration
Describes the environment variables required to run the server.
| Name | Required | Description | Default |
|---|---|---|---|
No arguments | |||
Capabilities
Features and capabilities supported by this server
| Capability | Details |
|---|---|
| tools | {
"listChanged": false
} |
| prompts | {
"listChanged": false
} |
| resources | {
"subscribe": false,
"listChanged": false
} |
| experimental | {} |
Tools
Functions exposed to the LLM to take actions
| Name | Description |
|---|---|
| get_pdf_infoB | 获取PDF文件的基本信息。 Args: file_path: PDF文件的完整路径 Returns: 包含以下信息的字典: - page_count: 页数 - title: 标题 - author: 作者 - subject: 主题 - creator: 创建程序 - producer: 生成程序 - creation_date: 创建日期 - modification_date: 修改日期 - file_size: 文件大小(字节) - file_size_mb: 文件大小(MB) - is_encrypted: 是否加密 |
| read_pdf_as_imagesA | 将PDF页面转换为图片(base64编码)返回。适合需要保留原始排版、图表、公式的场景。 Args: file_path: PDF文件的完整路径 pages: 要读取的页码,支持多种格式: - 不传或"all": 所有页面 - "1": 单页 - "1-5": 页码范围 - "1-": 从第1页到末尾 - "-5": 从开头到第5页 - "1,3,5": 指定多页 - "1-3,5,7-9": 混合格式 dpi: 图片分辨率,默认150。72=低质量小文件,150=平衡,300=高清大文件 image_format: 图片格式,"jpeg"(默认,文件小)或"png"(无损,文件大) quality: JPEG压缩质量(1-100),默认85。仅对jpeg格式有效,值越低文件越小但质量越差 max_total_bytes_mb: 单次调用允许返回的最大图片负载(MB),默认20 Returns: 图片列表,每个元素包含: - page_number: 页码(从1开始) - image_base64: 图片的base64编码 - width: 图片宽度(像素) - height: 图片高度(像素) - format: 图片格式 - truncated: 是否因大小限制被截断 - warning: 截断或限制提示(可选) |
| read_pdf_as_textA | 提取PDF的文本内容。适合纯文本PDF,速度快,消耗token少。 注意:对于扫描版PDF(图片PDF),此方法可能无法提取文本,建议使用read_pdf_as_images。 Args: file_path: PDF文件的完整路径 pages: 要读取的页码,支持多种格式: - 不传或"all": 所有页面 - "1": 单页 - "1-5": 页码范围 - "1-": 从第1页到末尾 - "-5": 从开头到第5页 - "1,3,5": 指定多页 - "1-3,5,7-9": 混合格式 max_pages: 单次调用最多返回的页数,默认50 max_chars: 单次调用最多返回的总字符数,默认200000 Returns: 包含以下信息的字典: - total_pages: 总页数 - extracted_pages: 提取的页码列表 - pages: 每页内容列表,包含page_number和text - full_text: 所有页面的合并文本 - warning: 警告信息(如检测到可能是扫描版PDF或结果被截断) |
| get_pdf_outlineA | 获取PDF的书签/目录结构(大纲)。 Args: file_path: PDF文件的完整路径 Returns: 包含以下信息的字典: - has_outline: 是否有目录 - outline_count: 目录条目数量 - outline: 目录列表,每个元素包含: - level: 层级(1开始) - title: 标题 - page: 页码 |
| search_pdf_textA | 在PDF中搜索文本,返回匹配位置和上下文。 Args: file_path: PDF文件的完整路径 query: 搜索关键词 pages: 搜索的页码范围(可选,默认全部页面) max_results: 最大返回结果数,默认50 Returns: 包含以下信息的字典: - query: 搜索关键词 - total_matches: 匹配总数 - pages_with_matches: 有匹配的页码列表 - results: 匹配结果列表,每个包含: - page: 页码 - context: 匹配的上下文文本 |
| extract_pdf_tablesA | 提取PDF中的表格数据。 注意:表格提取依赖PDF的结构,对于复杂或扫描版PDF可能效果不佳。 Args: file_path: PDF文件的完整路径 pages: 要提取的页码范围(可选,默认全部页面) Returns: 包含以下信息的字典: - total_tables: 表格总数 - tables: 表格列表,每个包含: - page: 页码 - table_index: 该页中的表格索引 - rows: 行数 - cols: 列数 - data: 表格数据(二维数组) |
| extract_pdf_imagesB | 提取PDF中嵌入的图片。 Args: file_path: PDF文件的完整路径 pages: 要提取的页码范围(可选,默认全部页面) min_width: 最小图片宽度,过滤小图片,默认100像素 min_height: 最小图片高度,过滤小图片,默认100像素 Returns: 包含以下信息的字典: - total_images: 图片总数 - images: 图片列表,每个包含: - page: 页码 - image_index: 该页中的图片索引 - width: 宽度 - height: 高度 - format: 图片格式 - image_base64: base64编码的图片数据 |
| get_pdf_page_infoA | 获取PDF指定页面的详细信息。 Args: file_path: PDF文件的完整路径 page: 页码(从1开始) Returns: 包含以下信息的字典: - page_number: 页码 - width: 页面宽度(点) - height: 页面高度(点) - rotation: 旋转角度 - has_text: 是否包含文本 - text_length: 文本长度 - image_count: 图片数量 - link_count: 链接数量 |
| extract_pdf_linksB | 提取PDF中的所有链接(URL和内部跳转)。 Args: file_path: PDF文件的完整路径 pages: 要提取的页码范围(可选,默认全部页面) Returns: 包含以下信息的字典: - total_links: 链接总数 - external_links: 外部URL链接列表 - internal_links: 内部跳转链接列表 |
| get_pdf_annotationsA | 获取PDF中的注释(批注、高亮、下划线等)。 Args: file_path: PDF文件的完整路径 pages: 要提取的页码范围(可选,默认全部页面) Returns: 包含以下信息的字典: - total_annotations: 注释总数 - annotations: 注释列表,每个包含: - page: 页码 - type: 注释类型 - content: 注释内容 - author: 作者 |
| get_pdf_text_statsA | 获取PDF文本的统计信息(字数、字符数、段落数等)。 Args: file_path: PDF文件的完整路径 pages: 要统计的页码范围(可选,默认全部页面) Returns: 包含以下信息的字典: - total_pages: 总页数 - analyzed_pages: 分析的页数 - total_characters: 总字符数 - total_characters_no_space: 不含空格的字符数 - total_words: 总词数(按空格分割) - total_lines: 总行数 - total_paragraphs: 总段落数 - avg_chars_per_page: 平均每页字符数 - avg_words_per_page: 平均每页词数 - is_likely_scanned: 是否可能是扫描版PDF |
| compare_pdf_pagesA | 比较PDF中两个页面的文本差异。 Args: file_path: PDF文件的完整路径 page1: 第一个页码(从1开始) page2: 第二个页码(从1开始) Returns: 包含以下信息的字典: - page1_chars: 第一页字符数 - page2_chars: 第二页字符数 - common_lines: 相同的行数 - page1_unique_lines: 仅在第一页出现的行数 - page2_unique_lines: 仅在第二页出现的行数 - similarity: 相似度(0-1) |
Prompts
Interactive templates invoked by user choice
| Name | Description |
|---|---|
No prompts | |
Resources
Contextual data attached and managed by the client
| Name | Description |
|---|---|
No resources | |
Latest Blog Posts
- Who's Calling? MCP Hosts Are an Identity Blind Spot (And the Spec Knows It)By Om-Shree-0709 on .mcpAgent IdentityOAuth 2.1
- Your AI Chatbot Just Exposed Your CEO's Salary to an InternBy Om-Shree-0709 on .Agent IdentityMCP SecurityOAuth Delegation
- Why MCP Servers Need Execution Sandboxing (And Why Your Current Stack Isn't Enough)By Om-Shree-0709 on .Agentic AiPrompt InjectionWebAssembly
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/Xvvln/pdf-reader-mcp'
If you have feedback or need assistance with the MCP directory API, please join our Discord server