times_esa_mcp_server

times_esa_mcp_server

0

This project is a Model Context Protocol server that allows users to seamlessly post daily reports to esa.io from within VS Code. Its main features include automatic time stamping and prevention of duplicate posts, improving documentation quality and developer efficiency.

times_esa_mcp_server リポジトリの概要

このリポジトリは、VS Code内からesa.ioサービスに日報や投稿を作成・管理するためのModel Context Protocol (MCP) サーバーを実装したプロジェクトです。

開発背景と位置づけ

VS CodeのCopilot Agentは開発をサポートする強力なツールであり、多くの開発者がチャットでエージェントとやり取りする機会が増えています。開発中に生まれたアイデア、疑問点、作業内容などをその場でメモしたいという需要があります。

他のアプリケーションに切り替えてメモを取ることも可能ですが、エンジニアであればVS Codeから離れることなく、開発作業の流れを中断せずに日報やメモを残したいというニーズがあります。

本ツールは、MCPサーバーを通じてesa.ioにシームレスに日報を投稿できる機能を提供し、開発者の作業効率とドキュメンテーションの質を向上させることを目的としています。開発環境に統合された自然言語インターフェースを通じて、エディタから離れることなく日報投稿ができる点が特徴です。

関連プロジェクト

関連するプロジェクトとして、以下のウェブアプリもご利用ください。

主な機能

  • 日報投稿機能: #times-esaコマンドによりesa.ioに日報を作成・更新
  • 日付ベース管理: 日報は「日報/YYYY/MM/DD」カテゴリ形式で管理
  • 自動時刻追記: 投稿内容に現在時刻(HH:MM形式)を自動的に追加
  • 既存日報対応: 同日の日報が既に存在する場合は上部に内容を追記
  • 重複投稿防止: テキスト類似度を考慮したデバウンス機能を実装

利用方法

インストール

以下のコマンドでMCPサーバーをインストールできます:

go install github.com/syou6162/times_esa_mcp_server

環境変数の設定

以下の環境変数を設定する必要があります:

export ESA_TEAM_NAME=your_team
export ESA_ACCESS_TOKEN=your_token

注意: ESA_ACCESS_TOKENには読み取り(read)と書き込み(write)の両方の権限が必要です。esa.ioの設定画面からアクセストークンを生成する際に、適切な権限を付与してください。

VS Code設定

VS Codeでこのツールを使用するには、settings.jsonに以下の設定を追加してください:

{
    "mcp": {
        "servers": {
            "times-esa-mcp-server": {
                "command": "${env:HOME}/go/bin/times_esa_mcp_server",
                "args": [],
                "env": {
                    "ESA_TEAM_NAME": "YOUR_TEAM_NAME",
                    "ESA_ACCESS_TOKEN": "YOUR_ACCESS_TOKEN"
                },
            }
        }
    }
}

利用可能なコマンド

  • #times-esa: テキストパラメータを受け取り、日報として投稿

技術的特徴

  • Go 1.23.2で実装
  • mark3labs/mcp-goフレームワークを使用
  • インターフェースベースの設計でテスト容易性を確保
  • モックフレームワーク(mockery)を使用した単体テスト
  • GitHub Actionsによる自動ビルド・テスト設定

品質保証

  • 充実した単体テスト
  • CI/CDパイプラインによる自動検証
  • コードのモジュール化とクリーンなインターフェース設計