<?xml version="1.0" encoding="utf-8" standalone="yes"?><rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom"><channel><title>Project on Yarang's Tech Lair</title><link>https://blog.agentthread.dev/tags/project/</link><description>Recent content in Project on Yarang's Tech Lair</description><generator>Hugo -- gohugo.io</generator><language>en</language><lastBuildDate>Wed, 25 Feb 2026 00:00:00 +0900</lastBuildDate><atom:link href="https://blog.agentthread.dev/tags/project/index.xml" rel="self" type="application/rss+xml"/><item><title>[MCP] Blog Server Improvement Kickoff</title><link>https://blog.agentthread.dev/post/mcp-server-improvement-kickoff-meeting/</link><pubDate>Wed, 25 Feb 2026 00:00:00 +0900</pubDate><guid>https://blog.agentthread.dev/post/mcp-server-improvement-kickoff-meeting/</guid><description>&lt;h1 id="blog-mcp-server-improvement-project-kickoff-meeting-minutes"&gt;Blog MCP Server Improvement Project Kickoff Meeting Minutes
&lt;/h1&gt;&lt;p&gt;&lt;strong&gt;Date:&lt;/strong&gt; 2026-02-25
&lt;strong&gt;Project:&lt;/strong&gt; Blog MCP Server Improvement
&lt;strong&gt;Attendees:&lt;/strong&gt; team-lead, backend-dev, search-specialist, qa-tester, meeting-writer
&lt;strong&gt;Document Author:&lt;/strong&gt; meeting-writer&lt;/p&gt;
&lt;hr&gt;
&lt;h2 id="1-meeting-overview"&gt;1. Meeting Overview
&lt;/h2&gt;&lt;h3 id="11-purpose"&gt;1.1 Purpose
&lt;/h3&gt;&lt;p&gt;Project kickoff to improve the stability and performance of the blog MCP server according to the improvement roadmap defined in ARCHITECTURE.md&lt;/p&gt;
&lt;h3 id="12-project-scope"&gt;1.2 Project Scope
&lt;/h3&gt;&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;Blog Repository:&lt;/strong&gt; &lt;code&gt;/Users/yarang/workspaces/agent_dev/blogs&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;API Server:&lt;/strong&gt; &lt;code&gt;/Users/yarang/workspaces/agent_dev/blog-api-server&lt;/code&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;hr&gt;
&lt;h2 id="2-project-background"&gt;2. Project Background
&lt;/h2&gt;&lt;h3 id="21-current-system-status"&gt;2.1 Current System Status
&lt;/h3&gt;&lt;p&gt;The current blog system operates with the following structure:&lt;/p&gt;
&lt;div class="highlight"&gt;&lt;pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;"&gt;&lt;code class="language-fallback" data-lang="fallback"&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;Claude Code (MCP Client)
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; ↓ HTTP POST /posts
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;API Server (blog-api-server)
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; ↓ Git clone/pull, Git commit/push
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;GitHub (yarang/blogs)
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; ↓ GitHub Actions trigger
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;Hugo Build + Deploy
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; ↓
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;Blog (blog.fcoinfup.com)
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;h3 id="22-identified-issues"&gt;2.2 Identified Issues
&lt;/h3&gt;&lt;h4 id="-p0---critical-issues"&gt;🔴 P0 - Critical Issues
&lt;/h4&gt;&lt;ol&gt;
&lt;li&gt;&lt;strong&gt;Insufficient Concurrency Control&lt;/strong&gt;: Only using global &lt;code&gt;threading.Lock()&lt;/code&gt;, potential race conditions in multi-process environments&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Search Bug&lt;/strong&gt;: &lt;code&gt;search_posts()&lt;/code&gt; only searches Korean directory, missing English posts&lt;/li&gt;
&lt;/ol&gt;
&lt;h4 id="-p1---scalability-issues"&gt;🟡 P1 - Scalability Issues
&lt;/h4&gt;&lt;ol&gt;
&lt;li&gt;&lt;strong&gt;Git Pull on Every Request&lt;/strong&gt;: Unnecessary network calls, increased latency&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;File-based Search (O(n))&lt;/strong&gt;: Performance degradation with 100+ posts&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Global Instance Dependency&lt;/strong&gt;: Difficult testing, no dependency injection&lt;/li&gt;
&lt;/ol&gt;
&lt;h4 id="-p2---maintainability-issues"&gt;🟢 P2 - Maintainability Issues
&lt;/h4&gt;&lt;ol&gt;
&lt;li&gt;Duplicate Git code (&lt;code&gt;GitManager&lt;/code&gt; and &lt;code&gt;GitHandler&lt;/code&gt; coexist)&lt;/li&gt;
&lt;li&gt;Unstable language detection logic&lt;/li&gt;
&lt;li&gt;Broad exception handling&lt;/li&gt;
&lt;/ol&gt;
&lt;hr&gt;
&lt;h2 id="3-team-composition"&gt;3. Team Composition
&lt;/h2&gt;&lt;table&gt;
	&lt;thead&gt;
			&lt;tr&gt;
					&lt;th&gt;Role&lt;/th&gt;
					&lt;th&gt;Member&lt;/th&gt;
					&lt;th&gt;Responsibilities&lt;/th&gt;
			&lt;/tr&gt;
	&lt;/thead&gt;
	&lt;tbody&gt;
			&lt;tr&gt;
					&lt;td&gt;team-lead&lt;/td&gt;
					&lt;td&gt;Project Leader&lt;/td&gt;
					&lt;td&gt;Overall project management, coordination&lt;/td&gt;
			&lt;/tr&gt;
			&lt;tr&gt;
					&lt;td&gt;backend-dev&lt;/td&gt;
					&lt;td&gt;Backend Developer&lt;/td&gt;
					&lt;td&gt;Concurrency control, Git optimization&lt;/td&gt;
			&lt;/tr&gt;
			&lt;tr&gt;
					&lt;td&gt;search-specialist&lt;/td&gt;
					&lt;td&gt;Search Specialist&lt;/td&gt;
					&lt;td&gt;Search functionality improvement&lt;/td&gt;
			&lt;/tr&gt;
			&lt;tr&gt;
					&lt;td&gt;qa-tester&lt;/td&gt;
					&lt;td&gt;QA Tester&lt;/td&gt;
					&lt;td&gt;Testing and quality assurance&lt;/td&gt;
			&lt;/tr&gt;
			&lt;tr&gt;
					&lt;td&gt;meeting-writer&lt;/td&gt;
					&lt;td&gt;Meeting Scribe&lt;/td&gt;
					&lt;td&gt;Meeting notes and documentation&lt;/td&gt;
			&lt;/tr&gt;
	&lt;/tbody&gt;
&lt;/table&gt;
&lt;hr&gt;
&lt;h2 id="4-work-items-and-progress"&gt;4. Work Items and Progress
&lt;/h2&gt;&lt;h3 id="41-search-bug-fix--complete"&gt;4.1 Search Bug Fix ✅ Complete
&lt;/h3&gt;&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;Owner:&lt;/strong&gt; search-specialist&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Priority:&lt;/strong&gt; P0&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Results:&lt;/strong&gt;
&lt;ul&gt;
&lt;li&gt;Confirmed P0 bug in ARCHITECTURE.md was already fixed&lt;/li&gt;
&lt;li&gt;Verified with 12 test cases in &lt;code&gt;test_search.py&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;All language directories (ko, en) now searchable&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;h3 id="42-git-pull-optimization--complete"&gt;4.2 Git Pull Optimization ✅ Complete
&lt;/h3&gt;&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;Owner:&lt;/strong&gt; backend-dev&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Priority:&lt;/strong&gt; P1&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Results:&lt;/strong&gt;
&lt;ul&gt;
&lt;li&gt;Introduced &lt;code&gt;CacheManager&lt;/code&gt; in MCP client (5-minute TTL)&lt;/li&gt;
&lt;li&gt;Implemented cache invalidation after write operations&lt;/li&gt;
&lt;li&gt;Location: &lt;code&gt;.claude/mcp_server.py:25-71&lt;/code&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;h3 id="43-enhanced-concurrency-control--complete"&gt;4.3 Enhanced Concurrency Control ✅ Complete
&lt;/h3&gt;&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;Owner:&lt;/strong&gt; backend-dev&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Priority:&lt;/strong&gt; P1&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Results:&lt;/strong&gt;
&lt;ul&gt;
&lt;li&gt;Introduced &lt;code&gt;asyncio.Lock&lt;/code&gt; in MCP client&lt;/li&gt;
&lt;li&gt;Prevented write operation conflicts&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;h3 id="44-existing-test-code-validation--in-progress"&gt;4.4 Existing Test Code Validation 🔄 In Progress
&lt;/h3&gt;&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;Owner:&lt;/strong&gt; qa-tester&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Priority:&lt;/strong&gt; QA&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Status:&lt;/strong&gt; In progress&lt;/li&gt;
&lt;/ul&gt;
&lt;h3 id="45-architecturemd-update--complete"&gt;4.5 ARCHITECTURE.md Update ✅ Complete
&lt;/h3&gt;&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;Owner:&lt;/strong&gt; team-lead&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Results:&lt;/strong&gt;
&lt;ul&gt;
&lt;li&gt;Reflected completed work&lt;/li&gt;
&lt;li&gt;Progress indicators (✅ Complete, 🔄 In Progress, ⚡ Partial)&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;hr&gt;
&lt;h2 id="5-key-achievements"&gt;5. Key Achievements
&lt;/h2&gt;&lt;h3 id="before-improvements"&gt;Before Improvements
&lt;/h3&gt;&lt;ul&gt;
&lt;li&gt;Git Pull on every request (up to 60-second timeout)&lt;/li&gt;
&lt;li&gt;Only Korean posts searchable&lt;/li&gt;
&lt;li&gt;Insufficient concurrency control&lt;/li&gt;
&lt;/ul&gt;
&lt;h3 id="after-improvements"&gt;After Improvements
&lt;/h3&gt;&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;Caching Introduced:&lt;/strong&gt; 5-minute TTL minimizes unnecessary API calls&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Multi-language Search:&lt;/strong&gt; Both Korean and English posts searchable&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Concurrency Control:&lt;/strong&gt; &lt;code&gt;asyncio.Lock&lt;/code&gt; prevents write operation conflicts&lt;/li&gt;
&lt;/ul&gt;
&lt;hr&gt;
&lt;h2 id="6-test-coverage"&gt;6. Test Coverage
&lt;/h2&gt;&lt;table&gt;
	&lt;thead&gt;
			&lt;tr&gt;
					&lt;th&gt;Test Item&lt;/th&gt;
					&lt;th&gt;Status&lt;/th&gt;
			&lt;/tr&gt;
	&lt;/thead&gt;
	&lt;tbody&gt;
			&lt;tr&gt;
					&lt;td&gt;Multi-language search (ko, en)&lt;/td&gt;
					&lt;td&gt;✅&lt;/td&gt;
			&lt;/tr&gt;
			&lt;tr&gt;
					&lt;td&gt;Relevance sorting&lt;/td&gt;
					&lt;td&gt;✅&lt;/td&gt;
			&lt;/tr&gt;
			&lt;tr&gt;
					&lt;td&gt;Case-insensitive search&lt;/td&gt;
					&lt;td&gt;✅&lt;/td&gt;
			&lt;/tr&gt;
			&lt;tr&gt;
					&lt;td&gt;Result structure validation&lt;/td&gt;
					&lt;td&gt;✅&lt;/td&gt;
			&lt;/tr&gt;
			&lt;tr&gt;
					&lt;td&gt;Caching behavior&lt;/td&gt;
					&lt;td&gt;✅&lt;/td&gt;
			&lt;/tr&gt;
			&lt;tr&gt;
					&lt;td&gt;Connection pooling&lt;/td&gt;
					&lt;td&gt;✅&lt;/td&gt;
			&lt;/tr&gt;
			&lt;tr&gt;
					&lt;td&gt;Error handling&lt;/td&gt;
					&lt;td&gt;✅&lt;/td&gt;
			&lt;/tr&gt;
	&lt;/tbody&gt;
&lt;/table&gt;
&lt;hr&gt;
&lt;h2 id="7-next-steps-medium-term-plan"&gt;7. Next Steps (Medium-term Plan)
&lt;/h2&gt;&lt;h3 id="p2---structural-improvements"&gt;P2 - Structural Improvements
&lt;/h3&gt;&lt;ol&gt;
&lt;li&gt;&lt;strong&gt;Git Class Consolidation&lt;/strong&gt;: Merge &lt;code&gt;GitManager&lt;/code&gt; and &lt;code&gt;GitHandler&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Dependency Injection&lt;/strong&gt;: Utilize FastAPI Depends&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Index-based Search&lt;/strong&gt;: Consider Whoosh or Meilisearch&lt;/li&gt;
&lt;/ol&gt;
&lt;hr&gt;
&lt;h2 id="8-meeting-summary"&gt;8. Meeting Summary
&lt;/h2&gt;&lt;p&gt;This meeting minutes includes:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Project kickoff discussion items&lt;/li&gt;
&lt;li&gt;Team composition and role assignments&lt;/li&gt;
&lt;li&gt;Work item progress&lt;/li&gt;
&lt;li&gt;Summary of completed work&lt;/li&gt;
&lt;li&gt;Future plans&lt;/li&gt;
&lt;/ul&gt;
&lt;hr&gt;
&lt;p&gt;&lt;em&gt;This meeting minutes was prepared by meeting-writer and will be updated as the project progresses.&lt;/em&gt;&lt;/p&gt;
&lt;hr&gt;
&lt;p&gt;&lt;strong&gt;Korean Version:&lt;/strong&gt; &lt;a class="link" href="https://blog.agentthread.dev/ko/post/2026-02-25-001-mcp-server-improvement-kickoff-meeting/" &gt;한국어 버전&lt;/a&gt;&lt;/p&gt;</description></item></channel></rss>