Skip to main content
Glama
aiarchitecturedev

aiarchitect-blog-mcp

Official

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 등 입력은 범위 밖 값·잘못된 타입을 방어적으로 클램프합니다.

설계와 공개 배포 과정은 다음 글에 정리했습니다.

🔧 제공 도구

도구

설명

list_categories()

분류(7종)와 각 편수

list_articles(category?, limit?, offset?)

글 목록(분류 필터·페이지네이션)

search_articles(query, category?, limit?)

제목·설명·태그·본문 키워드 검색(랭킹·스니펫)

get_article(article_id)

전체 본문(마크다운) + 원문 URL(출처 링크)

blog_home()

블로그 홈 URL·제공 편수

Related MCP server: Legal Search MCP

🚀 설치

Claude Code

claude mcp add aiarchitect-blog -- uvx aiarchitect-blog-mcp

Claude 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 tools
blog_homeA
Read-onlyIdempotent

블로그 홈 URL과 서버가 제공하는 글 편수를 반환한다.

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYes

TDQS

A4.3/5.0
Behavior4/5

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.

Conciseness5/5

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.

Completeness5/5

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.

Parameters4/5

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.

Purpose5/5

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.

Usage Guidelines3/5

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_articleA
Read-onlyIdempotent

글 ID로 전체 본문(마크다운)을 반환한다. 상단·하단에 원문 URL 백링크를 포함한다.

ParametersJSON Schema
NameRequiredDescriptionDefault
article_idYes글 번호. "09", "9", "BLOG-09" 모두 허용.

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYes

TDQS

A4.3/5.0
Behavior4/5

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.

Conciseness5/5

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.

Completeness5/5

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.

Parameters3/5

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.

Purpose5/5

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.

Usage Guidelines4/5

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_articlesB
Read-onlyIdempotent

글 목록을 반환한다.

ParametersJSON Schema
NameRequiredDescriptionDefault
limitNo최대 개수(기본 50).
offsetNo페이지네이션 시작 위치.
categoryNo분류로 필터(부분 일치 허용). 예: "보안", "AI Agent · MCP".

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYes

TDQS

B3.4/5.0
Behavior3/5

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.

Conciseness5/5

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.

Completeness4/5

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.

Parameters3/5

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.

Purpose4/5

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.

Usage Guidelines2/5

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_categoriesA
Read-onlyIdempotent

블로그 분류(카테고리)와 각 분류의 글 편수를 반환한다.

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYes

TDQS

A4.5/5.0
Behavior4/5

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.

Conciseness5/5

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.

Completeness5/5

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.

Parameters4/5

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.

Purpose5/5

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.

Usage Guidelines4/5

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_articlesA
Read-onlyIdempotent

제목·설명·태그·본문에서 query를 검색해 관련 글을 랭킹순으로 반환한다.

각 결과는 id/제목/분류/태그/원문 URL/스니펫을 포함한다.

ParametersJSON Schema
NameRequiredDescriptionDefault
limitNo최대 결과 수(기본 10).
queryYes검색어(공백 구분 다중 토큰 가능). 예: "MCP OAuth PKCE".
categoryNo분류로 결과 범위 제한(선택).

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYes

TDQS

A4.3/5.0
Behavior4/5

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.

Conciseness5/5

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.

Completeness5/5

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.

Parameters3/5

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.

Purpose5/5

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.

Usage Guidelines4/5

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.

  1. 5 tool updatesv0.1.0
    • First observedblog_home
    • First observedget_article
    • First observedlist_articles
    • First observedlist_categories
    • First observedsearch_articles

TDQS

A4.2/5.0

Scored across 5 tools

Disambiguation5/5

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.

Naming Consistency5/5

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.

Tool Count5/5

With 5 tools, the set is well-scoped for a blog reading API. Each tool provides essential functionality without redundancy or bloat.

Completeness4/5

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

ActivityMaintained
ResponsivenessNo issues

Related MCP Connectors

Related MCP Servers

  • A
    license
    Not graded
    quality
    B
    maintenance
    Enables AI agents to search, read, and traverse documentation bundles in Open Knowledge Format via MCP tools.
    108 npm
    71
    MIT
  • A
    license
    A
    quality
    B
    maintenance
    Provides 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.
    26
    30
    211 npm
    MIT