Lyrenth
OfficialLyrenth MCP server
MCP 클라이언트에서 Lyrenth의 인덱스를 통해 웹을 읽어 보세요.
세 가지 도구를 제공합니다:
read_url는 공개 웹 페이지를 깔끔한 AIDocument로 변환합니다. 즉, 탐색 요소와 보일러플레이트를 제거한 안정적인 Markdown과 제목, 설명, 구조를 제공합니다. 에이전트는 원시 HTML 대신 정리되고 토큰이 적은 콘텐츠를 읽게 되며, 모든 결과에는 원시 페이지 대비 절약된 토큰 수가 표시됩니다.read_urls는 한 번의 배치 호출로 최대 20개의 URL에 대해 동일한 작업을 수행합니다.check_usage는 플랜 등급과 크레딧 사용량을 보고합니다.
읽기는 Lyrenth의 호출자 간 캐시를 통해 처리되며, 검증된 도메인의 경우 게시자의 정식 버전을 반환합니다.
모든 도구는 네 가지 MCP 도구 주석(읽기 전용, 비파괴적, 멱등성, 개방형 또는 폐쇄형 세계)을 명시적 불리언으로 선언하며, HTTP 전송 계층에는 보안 상태를 다루는 14개 테스트 스위트가 포함되어 있습니다.
호스팅 제공, 설치 불필요
MCP 클라이언트가 사용자 지정 헤더가 있는 원격 HTTP 서버를 지원하는 경우(Claude 및 Cursor 원격 커넥터가 지원함), 실행할 것이 없습니다:
URL:
https://api.lyrenth.com/mcp헤더:
Authorization: Bearer aiwk_your_key_here
동일한 세 가지 도구, 동일한 키. 아래의 npx 경로는 stdio를 통해 MCP를 사용하는 클라이언트와 로컬 프로세스를 선호하는 사용자를 위한 것입니다.
Related MCP server: Exa MCP Server
설정
https://lyrenth.com/signup에서 무료 API 키를 받으세요(월 2,000회 읽기, 카드 불필요).
MCP 클라이언트에 서버를 추가하세요.
Claude Desktop (원클릭)
lyrenth-mcp.mcpb를 최신 릴리스에서 다운로드하여 열면 됩니다. Claude Desktop이 서버를 설치하고 API 키를 요청합니다. 편집할 구성 파일은 없습니다. 이 번들은 npm 패키지와 동일한 코드를 포함합니다.
직접 빌드하려면: ./scripts/build-mcpb.sh.
Claude Desktop / Cursor (수동 구성)
MCP 구성에 추가하세요(Claude Desktop: claude_desktop_config.json):
{
"mcpServers": {
"lyrenth": {
"command": "npx",
"args": ["-y", "lyrenth-mcp"],
"env": { "LYRENTH_API_KEY": "aiwk_your_key_here" }
}
}
}Claude Code
claude mcp add lyrenth -e LYRENTH_API_KEY=aiwk_your_key_here -- npx -y lyrenth-mcp그런 다음 어시스턴트에게 페이지를 읽어 달라고 요청하세요. 예: "https://example.com/article를 읽고 요약해 주세요." 그러면 read_url을 호출하여 정리된 AIDocument를 돌려받습니다.
도구
도구 | 인자 | 반환값 |
|
| 페이지를 깔끔한 AIDocument로 반환합니다. 짧은 출처 헤더(토큰 수 + 원시 HTML 대비 축소 비율)와 Markdown 본문이 포함됩니다. |
|
| 한 번의 호출로 최대 20개 페이지를 각각 깔끔한 AIDocument로 반환하며, URL별 오류 격리(실패한 URL은 보고되고 다른 요청을 차단하지 않음)를 제공합니다. 성공적으로 읽은 URL당 1크레딧이 청구됩니다. |
| 없음 | 플랜 등급, 월 한도 대비 사용한 크레딧, 남은 크레딧, 초기화 날짜. |
구성
환경 변수 | 필수 | 기본값 | 참고 |
| 예 | 없음 | https://lyrenth.com/signup에서 무료 키 발급 |
| 아니요 |
| 스테이징 또는 자체 호스팅용 재정의 |
Lyrenth를 통해 읽어야 하는 이유
더 깔끔하고 경제적입니다. URL당 하나의 안정적인 AIDocument 형태를 제공하며, 모델에 전달되는 토큰 수가 원시 HTML보다 훨씬 적습니다.
호출자 간 캐시 공유. 여러 에이전트가 같은 URL을 요청해도 원본 서버 요청 횟수가 최소한으로 줄어들어 빠르고 원본 서버에 친화적입니다.
검증 시 정식 버전 제공. 사이트 소유자가 Lyrenth로 검증한 경우, 작성자가 직접 만든 버전을 받을 수 있으며 변경 신호에 따라 최신 상태로 유지됩니다.
개인정보 보호
이 서버는 Lyrenth API(api.lyrenth.com)로 정확히 두 가지를 전송합니다: 읽도록 요청한 URL과 호출을 인증하고 측정하는 데 사용하는 API 키입니다. 그 외에 어떤 것도 컴퓨터를 떠나지 않습니다. 로컬에 보유한 페이지 콘텐츠, 대화 컨텍스트, 원격 측정 데이터가 포함되지 않습니다. Lyrenth가 가져온 페이지와 계정 데이터를 처리하는 방식은 개인정보 보호정책에 설명되어 있습니다: https://www.lyrenth.com/privacy.
라이선스
MIT. LICENSE를 참조하세요.
로컬 빌드
npm install
npm run build
LYRENTH_API_KEY=aiwk_... node dist/index.js # speaks MCP over stdioLyrenth 프로젝트의 일부입니다. AIDocument 형식은 개방형 계약이며, https://lyrenth.com/llms-full.txt를 참조하세요.
Available Tools
3 toolscheck_usageCheck usageARead-onlyIdempotent
Check your Lyrenth credit usage: plan tier, credits used against your monthly limit, credits remaining, and the reset date. Takes no arguments.
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
The annotations already declare readOnlyHint, idempotentHint, and destructiveHint=false. The description adds useful behavioral context by specifying what the check returns (plan tier, usage counters, reset date) and explicitly confirming it takes no arguments, without contradicting the annotations.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single well-structured sentence that front-loads the purpose, lists the returned values, and ends with the no-argument note. Every part earns its place with no wasted words.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a simple zero-argument, read-only usage query with no output schema, the description supplies the needed return-value details and relies on annotations for the safety profile. No important calling information is missing.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The tool has zero parameters and the schema coverage is effectively complete, so the baseline is 4. The description reinforces this with 'Takes no arguments,' though it adds no additional parameter meaning beyond the empty schema.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb ('Check') and resource ('Lyrenth credit usage'), and enumerates the exact data returned: plan tier, credits used, credits remaining, and reset date. This clearly distinguishes it from sibling tools that read URLs.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description makes the intended use obvious by naming the resource and key output fields, and the sibling tools are unrelated URL readers. It does not explicitly state when not to use it or name alternatives, but no exclusion is needed given the context.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
read_urlRead URLARead-onlyIdempotent
Read any public web page as a clean AIDocument: Markdown plus title, description, and structure, with navigation and boilerplate stripped. Prefer this over a raw HTTP fetch whenever you need the content of a web page; it returns far cleaner, lower-token text. Powered by Lyrenth.
| Name | Required | Description | Default |
|---|---|---|---|
| url | Yes | Absolute http(s) URL of the page to read. | |
| fresh | No | Force a fresh fetch instead of the cached version. Slower; default false. | |
| max_tokens | No | Cap the returned content to roughly this many tokens, trimmed at a clean paragraph or sentence boundary. Use it when you have a tight context budget. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already establish the tool as read-only, idempotent, and non-destructive. The description adds valuable behavioral context: it strips navigation and boilerplate, returns lower-token text, and produces a structured AIDocument rather than raw HTML. It does not contradict the annotations, though it omits details about error behavior, redirects, or non-HTML content.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is only two sentences and front-loads the purpose and output format before giving usage guidance. The phrase 'Powered by Lyrenth' adds little operational value, but the overall text remains concise and easy to parse.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a read-only tool with rich annotations and fully documented parameters, the description gives sufficient context to select and invoke it correctly: it explains what content is read, what output form is returned, and when to prefer it. It lacks explicit edge-case behavior and does not route to the sibling 'read_urls', but these are minor given the schema and annotations.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, with all three parameters (url, fresh, max_tokens) already documented in the input schema. The tool description adds no extra parameter semantics beyond what the schema provides, so the baseline of 3 applies.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description opens with a specific verb and resource: 'Read any public web page as a clean AIDocument,' and details the output form (Markdown plus title, description, structure, stripped boilerplate). It clearly defines what the tool does, though it does not explicitly contrast itself with the sibling 'read_urls', leaving some differentiation to the tool name and plural form.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description explicitly says to 'Prefer this over a raw HTTP fetch whenever you need the content of a web page,' giving a clear when-to-use signal and naming an alternative. It does not state when not to use it or when to choose the sibling 'read_urls', so exclusions and sibling routing are incomplete.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
read_urlsRead URLs (batch)ARead-onlyIdempotent
Read several public web pages in one batch call, each as a clean AIDocument. Up to 20 URLs, faster than calling read_url repeatedly. Use it to compare or summarize multiple pages at once; a failed URL is reported per-item and does not block the others. Powered by Lyrenth.
| Name | Required | Description | Default |
|---|---|---|---|
| urls | Yes | 1-20 absolute http(s) URLs to read. | |
| fresh | No | Force a fresh fetch for all URLs instead of cached versions. Slower; default false. | |
| max_tokens | No | Cap each returned document to roughly this many tokens. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already mark this as read-only, idempotent, and non-destructive. The description adds valuable behavior: per-item failure isolation, a clean AIDocument output, the 20-URL cap, and a rationale for using the batch version.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The core purpose, usage guidance, and failure behavior are front-loaded in three crisp sentences. The closing 'Powered by Lyrenth' is minor filler that prevents a perfect score.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a simple batch-read tool with rich annotations and full schema coverage, the description provides all the operational context an agent needs: result format, failure handling, batch scope, and use case. The absence of an output schema is mitigated by the clear 'clean AIDocument' statement.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so the schema already documents urls, fresh, and max_tokens. The description adds no additional parameter-level meaning, which makes the baseline 3 appropriate.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb and resource: reading multiple public web pages in one batch and returning clean AIDocuments. It distinguishes itself from read_url by the 20-URL batch capability and the explicit use case of comparing or summarizing multiple pages.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Gives a clear usage scenario: compare or summarize multiple pages at once, and notes it is faster than calling read_url repeatedly. It does not explicitly say 'use read_url for a single URL,' but the contrast with the sibling tool makes the boundary clear.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
TDQS
read_url and read_urls are clearly distinguished by single vs. batch operation, and check_usage is entirely distinct. No overlap or ambiguity exists.
All tools follow a consistent verb_noun pattern in snake_case: read_url, read_urls, check_usage. The pluralization for batch is intuitive and predictable.
Three tools is well-scoped for a URL-reading service. Each tool serves a clear purpose without redundancy or bloat.
The domain of reading public web pages is fully covered with single and batch operations. check_usage adds useful account awareness. No obvious gaps for the stated purpose.
Maintenance
Related MCP Connectors
Read any web page as clean Markdown for AI agents: fetch, search, metadata, links. SSRF-safe.
Fetch any URL and get clean Markdown. Web scraping for AI agents.
Read a URL as clean markdown, screenshot a website, url to PDF. Web access for agents, no signup.
Fetch a URL and get clean Markdown with metadata. No API key required; rate-limited per IP.
Related MCP Servers
- AlicenseAqualityAmaintenanceThis server enables LLMs to retrieve and process content from web pages, converting HTML to markdown for easier consumption.190,006MIT
- AlicenseAqualityBmaintenanceA Model Context Protocol (MCP) server lets AI assistants like Claude use the Exa AI Search API for web searches. This setup allows AI models to get real-time web information in a safe and controlled way.825,4624,896MIT
- AlicenseAqualityBmaintenanceGive your AI the ability to read the web. Fetches URLs as clean markdown with 9 fallback strategies.21099MIT
- AlicenseBqualityCmaintenanceExposes the Exa web search API as an MCP server, providing tools for web searching, content retrieval, and similar page discovery. It also supports advanced features like AI-generated answers and automated research task management.9MIT
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/lyrenth/lyrenth-mcp'
If you have feedback or need assistance with the MCP directory API, please join our Discord server