aiarchitect-blog-mcp
OfficialThis MCP server provides read-only access to a bundled corpus of 69 Korean technical articles from the AI아키텍트 blog (aiarchitect.tistory.com), covering topics like MCP, AI agents, security, RAG/LLM, and enterprise architecture. It exposes the following tools:
list_categories: Returns all categories (7 total) and their article counts.list_articles: Retrieves a paginated list of articles, with optional filtering by category (supports partial match) and offset.search_articles: Searches across titles, descriptions, tags, and full body text. Supports multi-token queries, returns ranked results with snippets and original URLs.get_article: Fetches the full markdown content of an article by ID (flexible format: "09", "9", or "BLOG-09"), including a backlink to the original post.blog_home: Returns the blog's home URL and total number of articles (69).
All tools are read‑only, operate on local data, and include source URLs for proper attribution.
Provides tools to search and retrieve articles from the AI Architect blog on Tistory, including listing categories, listing articles, searching, and fetching full article content with original URLs.
Click on "Deploy Server".
Wait a few minutes for the server to deploy. Once ready, it will show a "Started" state.
In the chat, type
@followed by the MCP server name and your instructions, e.g., "@aiarchitect-blog-mcpsearch articles about MCP and AI agents"
That's it! The server will respond to your query, and you can continue using it as needed.
Here is a step-by-step guide with screenshots.
AI아키텍트 블로그 MCP 서버
aiarchitect.tistory.com 의 공개 기술 블로그(현재 번들 69편 규모)를 MCP(Model Context Protocol) 도구로 노출합니다. Claude·Cursor 등 MCP 클라이언트에 붙이면 AI 에이전트가 MCP·AI Agent·엔터프라이즈 아키텍처·보안·RAG/LLM 주제의 한국어 장문 기술 글을 바로 검색·열람할 수 있습니다.
💡 목록·검색·본문 응답에 원문(정식 게시글) URL이 실려, 에이전트의 답변에 출처 링크가 남을 가능성을 높입니다(추천 유입). ※ 정식 게시 URL이 없는 글은 fail-closed로 목록·검색·본문에서 제외되어, 홈 URL 폴백이 오도성 출처 링크로 노출되지 않습니다(현재 번들 69편 전부 정식 게시글).
🔒 읽기 전용 서버: 5개 도구 모두 로컬 번들 코퍼스만 읽습니다(쓰기·외부 호출·부작용 없음). 각 도구에
readOnlyHint가 선언돼 있고,limit/offset등 입력은 범위 밖 값·잘못된 타입을 방어적으로 클램프합니다.
설계와 공개 배포 과정은 다음 글에 정리했습니다.
🔧 제공 도구
도구 | 설명 |
| 분류(7종)와 각 편수 |
| 글 목록(분류 필터·페이지네이션) |
| 제목·설명·태그·본문 키워드 검색(랭킹·스니펫) |
| 전체 본문(마크다운) + 원문 URL(출처 링크) |
| 블로그 홈 URL·제공 편수 |
Related MCP server: Legal Search MCP
🚀 설치
Claude Code
claude mcp add aiarchitect-blog -- uvx aiarchitect-blog-mcpClaude Desktop / Cursor (mcp.json)
{
"mcpServers": {
"aiarchitect-blog": {
"command": "uvx",
"args": ["aiarchitect-blog-mcp"]
}
}
}uvx가 없으면 uv를 설치하거나 pipx run aiarchitect-blog-mcp 를 사용하세요.
🛠️ 로컬 개발
uv sync # 의존성 설치
uv run python scripts/build_index.py /path/to/blogs # 블로그 md → data/articles_index.json + 본문 번들
uv run pytest -q # 파서·검색 골든 테스트
uv run aiarchitect-blog-mcp # stdio 서버 실행build_index.py는 소스 블로그 마크다운 디렉터리(파일명 형식 NN-*.md)를 인자로 받습니다:
uv run python scripts/build_index.py /path/to/blogs.
📚 다루는 주제
MCP 설계·OAuth 2.1·원격 MCP · AI Agent 보안/감사 · RAG·STT·화자분리 · 멀티플랫폼 SDK 아키텍처 · 골든 테스트·시크릿 가드 등. 전체 목록은 블로그에서 확인하세요.
📄 라이선스
패키지 SPDX 표현식: MIT AND LicenseRef-AIArchitect-Articles
코드(SOURCE CODE): MIT — 자세한 내용은
LICENSE.번들된 글 본문: 별도 커스텀 라이선스
LicenseRef-AIArchitect-Articles— 저작권은 원저자(AI아키텍트)에게 있으며, 본 패키지의 일부로서만 원문 그대로 재배포·열람이 허용됩니다. 분리 재배포·2차 저작·상업적 재이용은 원저자의 사전 허가가 필요합니다. 자세한 조건은LICENSE-ARTICLES.
각 글은 https://aiarchitect.tistory.com/ 의 공개 원문을 편의상 재노출하며, 원문 페이지가 정본입니다.
Available Tools
5 toolsblog_homeARead-onlyIdempotent
블로그 홈 URL과 서버가 제공하는 글 편수를 반환한다.
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint true and idempotentHint true. The description adds the specific return content (URL and post count), but since an output schema exists, this is supplementary. No behavioral traits beyond the safe, read-only nature are disclosed, which is adequate for this simple tool.
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?
A single, concise sentence fully conveys the purpose without any waste. It is front-loaded with the action and resource.
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?
The tool is extremely simple with no parameters, an output schema exists, and the description sufficiently explains what it returns. No additional context is needed.
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 100% schema coverage, so the schema fully documents the input. The description appropriately adds no parameter details since none exist.
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 uses a specific verb ('returns') and clearly identifies the resource ('blog home URL and number of posts'). This distinguishes it from sibling tools like list_categories or get_article, which focus on different content.
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?
No explicit when-to-use or alternative guidance is provided. However, the tool's name and description make its purpose obvious, so usage context is implied but not formally stated.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_articleARead-onlyIdempotent
글 ID로 전체 본문(마크다운)을 반환한다. 상단·하단에 원문 URL 백링크를 포함한다.
| Name | Required | Description | Default |
|---|---|---|---|
| article_id | Yes | 글 번호. "09", "9", "BLOG-09" 모두 허용. |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already establish read-only and idempotent behavior. The description adds the notable behavioral detail that the response includes original URL backlinks at the top and bottom, and that the content is in Markdown format. This provides useful context beyond the schema and annotations, without contradicting them.
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 compact—two short sentences—with the primary verb and resource front-loaded. Every sentence adds value: the first states the core action, the second discloses a notable response feature. No redundant or filler content.
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?
Given the tool's low complexity (single parameter, read-only operation) and the presence of an output schema, the description covers the essential context: what it returns (full Markdown) and an additional output trait (backlinks). Sibling tools are distinguishable, and the description is sufficiently complete for an agent to invoke it correctly.
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 input schema already documents article_id thoroughly, including accepted formats ('09', '9', 'BLOG-09'). The description merely restates the parameter as '글 ID' without adding any new semantic information, so it relies on the schema's full coverage. 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 uses the specific verb '반환한다' (returns) and names the resource '전체 본문(마크다운)' (full text/markdown), distinguishing it from sibling tools like list_articles or search_articles which cover listing/searching. The inclusion of backlink behavior further clarifies the exact output scope.
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?
It implicitly defines usage: use when you have a specific article ID and need the complete Markdown content. It does not explicitly tell when not to use alternatives, but the parameter requirement '글 ID로' makes the context clear. No exclusions are mentioned, but the context is sufficient.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
list_articlesBRead-onlyIdempotent
글 목록을 반환한다.
| Name | Required | Description | Default |
|---|---|---|---|
| limit | No | 최대 개수(기본 50). | |
| offset | No | 페이지네이션 시작 위치. | |
| category | No | 분류로 필터(부분 일치 허용). 예: "보안", "AI Agent · MCP". |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=true and idempotentHint=true, covering the safety profile. The description adds no additional behavioral context beyond what the name implies, but it does not contradict 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 short sentence, efficiently conveying the core purpose with no redundant text. It is front-loaded and to the point.
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?
Given the simple list operation, the description is adequate when combined with schema and annotations. However, it lacks explicit usage differentiation from search_articles, leaving some contextual gap for an AI agent deciding between them.
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 schema provides 100% description coverage for all three parameters (limit, offset, category), so the description does not need to elaborate. It adds no extra parameter semantics but aligns with the 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?
The description uses the verb '반환한다' (returns) with the resource '글 목록' (article list), making the primary function clear. However, it does not explicitly distinguish from sibling tools like search_articles, which also returns articles but with a different intent.
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?
No guidance is provided on when to use this tool versus search_articles or list_categories. The description is a single line with no context about filtering, full listing, or alternatives.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
list_categoriesARead-onlyIdempotent
블로그 분류(카테고리)와 각 분류의 글 편수를 반환한다.
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint and idempotentHint, covering safety and idempotency. The description adds meaningful behavioral context by specifying the exact return content (categories and post counts), which goes beyond the annotations. There is no contradiction with 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 concise sentence, directly stating the tool's function without any filler, redundancy, or unnecessary detail. It is efficiently front-loaded with the action and resource.
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?
Given the tool's simplicity, zero parameters, and the existence of an output schema, the description is fully sufficient. It clearly states the resource and return value, while annotations cover behavioral safety and completeness (openWorldHint false).
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, so the baseline score of 4 applies. The description correctly implies that no input is required, and there are no parameter semantics to explain 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?
The description uses a specific verb '반환한다' (returns) and clearly identifies the resource: blog categories and their post counts. This makes the tool's purpose unambiguous and distinct from sibling tools like list_articles or search_articles, which focus on articles.
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 provides clear context that this tool returns categories with post counts, making it obvious when to use it (e.g., when needing an overview of blog taxonomy). However, it does not explicitly mention alternatives or situations where another tool would be more appropriate, which would be needed for a 5.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
search_articlesARead-onlyIdempotent
제목·설명·태그·본문에서 query를 검색해 관련 글을 랭킹순으로 반환한다.
각 결과는 id/제목/분류/태그/원문 URL/스니펫을 포함한다.
| Name | Required | Description | Default |
|---|---|---|---|
| limit | No | 최대 결과 수(기본 10). | |
| query | Yes | 검색어(공백 구분 다중 토큰 가능). 예: "MCP OAuth PKCE". | |
| category | No | 분류로 결과 범위 제한(선택). |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=true and idempotentHint=true, covering safety and idempotency. The description adds value by specifying the search scope (title/description/tag/body) and that results are ranked, which are behavioral traits not captured in annotations. This is useful context beyond the structured data.
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, front-loaded with the main action and scope. It avoids redundant details and includes essential information about result fields. Every sentence earns its place, making it highly concise and well-structured.
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?
Given the presence of an output schema, annotations, and high parameter schema coverage, the description is fully sufficient. It explains the search scope, ranking behavior, and result contents, and the limit parameter handles pagination implicitly. No missing crucial information for an agent to invoke it correctly.
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 coverage is 100%, with each parameter (query, limit, category) having descriptive text in the schema. The description does not add any additional parameter-level meaning, but the schema already handles it. Baseline 3 is appropriate when schema fully documents parameters.
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 clearly states the tool searches for a query across specific fields (title, description, tag, body) and returns ranked articles. The verb 'search' and resource 'articles' are specific, and it distinguishes from sibling tools like list_articles and get_article by focusing on query-based retrieval with ranking.
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 provides clear context: it searches across multiple fields and returns results ranked by relevance. While it does not explicitly name alternatives or exclusion criteria, the search-focused wording implies it is for query-based discovery versus listing all articles. No misleading guidance, and the scope is clear enough for an agent.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
Tool Schema Changelog
Recent tool additions, removals, and schema changes observed during successful MCP inspections.
5 tool updates
v0.1.0- First observed
blog_home - First observed
get_article - First observed
list_articles - First observed
list_categories - First observed
search_articles
TDQS
Scored across 5 tools
Each tool has a clear, distinct purpose: list categories, list articles, search articles, fetch a single article, and get home info. There is no overlap or ambiguity between them.
All tools follow a consistent verb_noun pattern: list_categories, list_articles, search_articles, get_article. blog_home is a slight deviation but still clear and predictable.
With 5 tools, the set is well-scoped for a blog reading API. Each tool provides essential functionality without redundancy or bloat.
The surface covers core blog browsing needs: categories, article listing, search, and full-text retrieval. A possible gap is filtering articles by category directly, but this is a minor workaround.
Maintenance
Related MCP Connectors
Read-only MCP tools for AI agent discovery, structured resources, and NIULAI information.
Search and read the Radixia blog (enterprise AI, cloud, open source) via MCP.
Knowledge base MCP for AI agents on iknow.dev. Search, read, and maintain via OAuth.
OrganiKPI MCP: search and fetch services, posts and tools as clean markdown (read-only).
Related MCP Servers
- AlicenseNot gradedqualityBmaintenanceEnables AI agents to search, read, and traverse documentation bundles in Open Knowledge Format via MCP tools.108 npm71MIT
- FlicenseAqualityCmaintenanceMCP server that enables AI agents to search Korean laws and retrieve article contents using the Korean Ministry of Legislation's law information API.2-
- FlicenseNot gradedqualityBmaintenanceRead-only MCP server that serves curated daily Korean AI briefings (papers, releases, community, video, deepdive) via 7 tools, with no LLM calls per request.-

santismm-knowledgeofficial
AlicenseAqualityBmaintenanceProvides a read-only MCP interface to the Santismm Knowledge Platform, offering tools to retrieve curated content on engineering, AI patterns, architectures, governance, and agent taxonomy with structured output in English, Spanish, and Portuguese.2630211 npmMIT