feature image

2025年6月27日 | 作品紹介

部内情報をAIでスマート検索!MCPを活用したAIチャットサービス「asQ」を作りました!

2025年春ハッカソン5班「asQ」です。

今回私たちは、部内SNSやイベント情報、wikiなどの情報を言語モデルに渡すことで、部員しか見ることのできない情報に基づいて回答をするチャットAIを提供するウェブアプリケーションを作りました。

つくったもの

GitHub - traP-jp/asQ: 2025春ハッカソン05班
2025春ハッカソン05班. Contribute to traP-jp/asQ development by creating an account on GitHub.

ユーザーはチャット画面から、traPに関することをAIに質問することができます。AIにはそれぞれ性格があり、好きな相手に質問できます。

asq1


チャットは同時に複数人で利用でき、質問の内容がリアルタイムに反映されるようになっています。

asq2


バックエンドからAIにプロンプトを送っていて、使えるツールとしてMCPサーバーのURLを渡しています。traPに関する質問をするとAIがいい感じにこのMCPサーバーを使って、traPの情報をコンテキストに含めてくれます。

asq3

開発について

準備期間

今回のハッカソンは、準備期間一週間+開発期間二日間というスケジュールでした。
準備期間では、部内Wikiや部内SNSからデータを取得し、部内で散らばった情報をAIを用いて"いいかんじに"取得できるサービスにしようということが決定しました。さらに「プロンプトで性格を付けたら面白そう!」というアイデアが出て、これも組み込まれることになりました。

実際の開発を行う前に練習で何か作りたいということになり、traQの自分のtimesの最初の10件をとるというサービス(うぶごえチェッカー)を作りました。(バックエンド: y_33550336、フロントエンド: minaさん)
pirosikiさんとmumumuさんがそれぞれバックエンドとフロントエンドのサポートをしてくれて、無事に完成させることができました。
本番の前日にこのサービスを作ったのですが、初めてのタスクにとてもちょうどよく、本当に良い練習となりました。

技術選定はtraPでよく見る構成です。フロントエンドはVue、バックエンド・MCPサーバーはGo、デプロイ先はNeoShowcaseです。LLMのモデルにはgpt-4oを選びました。

asq4

当日

今回のサービスはAIに質問するチャット型の検索システムで、一つのチャットに複数人が同時に参加できるようになっています。chatGPTのように返答が少しずつ生成されている部分にはSSE(Server Sent Events)を使用しました。これにより表示が滑らかになり、会話中の待ち時間が少なくストレスなくやり取りできるチャットになりました。
また、チャットルーム内でのイベントの配信(誰かが質問を開始した、AIがレスポンスを始めた、など)にもSSEを使用しました。

MCPサーバーはtraQと部内でホストされているCodiMDから情報を取得して、その内容を公開するようにしています。具体的には、traQのAPIから取得した情報のIDを名前に変換したものや、CodiMDのタイトルから検索できるようなものなどを提供しています。ハッカソンということもありパフォーマンスに対する配慮ができていないので、トークン数の削減が今後の課題です。

感想

y_33550336

バックエンドを担当しました!自分は前日まで本当に何も分からず、正直「エンドポイント??API??」という感じでした…
本番の前日に練習としてうぶごえチェッカーというサービスを作ったのですが、初めてのタスクにとてもちょうどよく、本当に良い練習となりました。考案してサポートしてくれたpirosikiさんに感謝です!
さらに当日でも、pirosikiさんが分かりやすく教えてくれながらちょうど良いタスクを振ってくれたおかげで、少しずつ理解してAPIの半分を実装できました!前日にやったことがめちゃくちゃ活かされました…!
戦力になったかは微妙かもしれないけど、成長できてとても楽しかったです!しかも企業賞までいただき、すごいサービスを作った担い手となれてうれしいです!
良いチームメンバーに恵まれて充実したハッカソンとなりました!

kaomojikun

フロントエンドを担当しました。ウェブ開発してみたいなぁという漠然とした気持ちしか持っておらず、前日まで何もわからないという状態でした。ですがmumumuさんが教えながら、適度なタスク配分をしてくれたおかげで、なんとか実装することができました。

自分の実力を身につけることができたのみならず、企業賞までいただくことができ、良いチームメンバーに恵まれたことをとても嬉しく思います。ウェブ開発をする大変良い経験になりました。

mina

フロントエンドを担当しました!HTMLもCSSも触ったことのない完全初心者でしたが、事前学習の時からmumumuさんに色々教えてもらったり励まされたりして、楽しく開発することができました。
自分が関わったものが多くの人に使ってもらえて感動しました。ふと口にした案がそのままサービス名になったり、5分で作ったアイコンが実際に画面に表示されているのも嬉しかったです。
ハッカソンに参加してよかったです。関わってくれたみなさんに感謝!

takino0309

バックエンドを担当しました。MCPサーバーのことをほとんど理解していない状態で、不安が大きかったですが、comaさんに手取り足取り教えていただき、どうにか振られた仕事を処理することができました。初めてのハッカソンというイベントでとても充実した有意義な経験をできたと思います。ありがとうございました

pirosiki

バックエンドを担当しました。ハッカソンに参加するのはこれで5回目ですが、やはりチームのみんなで1つの作品を作るというのは楽しいですね。
自分が担当したチャットルーム周りは非同期処理がコアになっていて、AIからのレスポンスをうまいことチャットルーム内の全員にリアルタイムで配信するのが難しかったです(ハッカソン中には終わらなかった...)。延長戦でなんとかうまいこと実装することができて、技術的にも面白かったです。

mumumu

フロントエンド担当でした僕が一番最初に行ったWeb開発は去年の春ハッカソンだったので、このハッカソンでちょうど一年になりました。
気付けば”中級者枠”に昇格し、今回は初心者の方2人と3人でフロントエンドを担当することになりました。タスクを上手く割り振れるか、質問に上手く答えることが出来るかどうか内心ヒヤヒヤでしたが初日は比較的スムーズに進めらました。
ところが二日目は時間的に完成が怪しくなってきて、焦りから質問に十分に答えられなかった場面もあり少し申し訳なさも感じています。
(かなりぎりぎりで試遊会が始まってもまだビルド中でした......)
とはいえ初心者の二人が頼んだタスクを全ていい感じにやってくれてすごく助かりました。たとえば「optionでいいよ」と仕様mdに書いただけなのにレスポンシブ対応までしてくれたり、大雑把な指示からでもちゃんと形にしてくれたりと、思っていた以上の頼もしさに驚きと感謝の二日間でした。

今年はビビってしまいましたが来年はリーダーをやります!!!!!!!

comavius

リーダーです。MCPサーバーを担当しました。メンバーに恵まれてうまいことチームが回ったので助かりました。
MCPサーバーを作るのは今回が初めてだったということもあり、開発前はモデルがMCPをいい感じに読んでくれるか心配だったのですが、案外簡単に動いたので拍子抜けしました。また、今回はmcp-goというライブラリを使ったのですが、ハッカソン翌週の木曜日に公式からgo-sdkが出たので、今後goでMCPサーバーを作る人はこちらを使ったほうがいいと思います。

終わりに

協賛のナレッジワークさんから企業賞をいただきました。やった〜

comavius icon
この記事を書いた人
comavius

pirosiki icon
この記事を書いた人
pirosiki

23B。SysAd班でがんばってます

mumumu icon
この記事を書いた人
mumumu

y_33550336 icon
この記事を書いた人
y_33550336

mina icon
この記事を書いた人
mina

23B 生命理工学院材料系 ふわふわしてます

takino0309 icon
この記事を書いた人
takino0309

kaomojikun icon
この記事を書いた人
kaomojikun

この記事をシェア

このエントリーをはてなブックマークに追加
共有

関連する記事

2023年11月21日
School Breakin' Tag -新感覚おにごっこ-
s9 icon s9
2025年4月25日
1週間でゲームを作った #Charon
Komichi icon Komichi
2024年9月20日
2024年 1-Monthonを開催しました!!
Synori icon Synori
2023年12月11日
DIGI-CON HACKATHON 2023『Mikage』
toshi00 icon toshi00
2025年2月4日
冬ハッカソン2024 22班 「Queen Bee」
YHz_ikiri icon YHz_ikiri
2022年4月7日
traPグラフィック班の活動紹介
annin icon annin
記事一覧 タグ一覧 Google アナリティクスについて 特定商取引法に基づく表記