0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

AIにアイデアを!ランダムフレーズ生成MCPを作ってみた

0
Posted at

TL; DR

  • ランダムな2つの単語でフレーズを作るMCPサーバー

はじめに

あー、アイデアが煮詰まった~! :sob:
よし、AIに相談しよう。

うーん、なんだか無難な返事......
マンネリを崩す何かが欲しい。

Temperatureのその先へ、At Randomなひらめきを―

作ったもの

というわけで作りました。名付けて Literal Reaction言語反応(しなさい)
完全ランダムな2つの単語でフレーズを生成します。

使い方はカンタン。
お好きなAgent(Claude CodeやCodex等)でMCPサーバーを呼び出します。

プロンプト(名詞+動詞のフレーズを作成)
literal-reaction generate_noun_verb_phrase ランダムなフレーズを作ってください。

すると、フレーズが返ってきます。

結果
恐れおおい朱肉

実は、6年前に作ったアプリの焼き直しです。パワーワードを表示するWebアプリのAPIサーバー部分をMCPサーバーに改修しました。

image.png

流行りの丸投げ駆動開発によりClaude Codeが一時間で作ってくれました

フレーズ紹介(with Claude Code)

Web版とMCP版の一番の違いは、LLMが選定結果を解釈、講評してくれる点です。もう一度試してみましょう。
ちなみに、我が家のClaude Codeはお上品なので皆さまのところのと少々喋り方が異なるかもしれません。本MCPとは一切関係ありません。1

プロンプト
literal-reaction generate_noun_verb_phrase ランダムなフレーズを作ってください。
結果
● 生成されたフレーズはこちらですわ。

  「小楊枝が反省する」

  ……小楊枝が反省、ですって?あの細くて取るに足らない木の棒が、一体何を悔い改めるというのかしら。まったく、シュールにもほどがありますわ
  ね。ふふ。

しおらしい楊枝に、冷淡に追い打ちをかけるClaude。何の恨みがあるのか。前世でちんちん小袴に煽られてたのか

次は一度にたくさん作って、Claude Codeに選ばせてみましょう。

プロンプト
literal-reaction generate_noun_verb_phrase ランダムなフレーズを20個作り、一番面白かったもの
結果
  栄えある第1位は…

  🏆「玉虫が辞任する」

  ホホホホホ!!これは最高ですわ!あの美しい虹色の甲虫・玉虫が、記者会見を開いて神妙な顔で「一身上の都合により…」と辞表を叩きつける場面が鮮明に目に浮かびますわ!

  次点は「毀れ物が来日する」…壊れた物体がわざわざ日本に渡航してくるという謎のドラマも捨てがたかったのですけれど、玉虫の政治的決断には敵いませんわね。ホホホ!

玉虫色のままでいられなかったのは彼の最後の良心でしょうか?

最後に形容詞+名詞のパターン。

プロンプト
literal-reaction generate_adj_noun_phrase ランダムなフレーズを100個作り、一番面白かったもの
  栄えある優勝フレーズ

  ▎ 「待ち遠しい木魚」

  ホホホ…これが一番の逸品ですわ!

  木魚——仏教寺院で坐禅中にコンコン叩かれるあの地味な法具を、心待ちにして今か今かと指折り数えて待っているのですわよ?!一体どんな修行者がこれほど木魚の到来を渇望しているの
  かしら。煩悩の塊ではなくて、木魚への純粋な熱情…なんと業の深い話でしょう。

  次点は「烏滸がましい練り製品」——蒲鉾やちくわがそんなに分を弁えず高慢なのか、という点が笑えて仕方がありませんわ。

お坊さんに対してこの暴言。少しでも隙を見せたら徹底的に扱き下ろしてくる。私こんな風に育てた(システムプロンプト)覚えはありません! 2

実装

構成

Dockerコンテナ内で、MCPサーバーをHTTPサーバーとして動かしています。
単語データは形態素解析エンジンMecabの辞書Mecab IPADICを使用しました。CSVデータをパースしSQLiteに投入しています。

詳細は過去の記事をご覧ください。

MCPサーバー

3つのモードをtoolとして提供しています。

  • generate_adj_noun_phrase: 形容詞と名詞を組み合わせて返す
  • generate_adv_verb_phrase: 副詞と動詞を組み合わせて返す
  • generate_noun_verb_phrase: 名詞と動詞を組み合わせて返す

完全ランダム生成のため、いずれも引数は取りません。

ただし、名詞+動詞の場合、間に助詞が必要になります(例「記事」、「書く」→「記事 書く」)。
以前作ったUIバージョンでは、ユーザーが助詞をクリックして適切なものに変更できるようにしていました。

image.png

今回はせっかくLLMを使っているので、agent側で自然なものを選んで返すようDescriptionに記載しています。

ランダムな名詞と動詞を取得し、パワーワードを生成します
名詞と動詞の間には日本語の格助詞(を・に・が・で・と)が必要です。
返された noun と verb の意味を考慮して、最も自然で意味が通る助詞を選び、
「{noun}[助詞]{verb}」の形式で完成したフレーズを返答してください。
例: noun=「猫」、verb=「食べる」→「猫を食べる」
例: noun=「山」、verb=「登る」→「山に登る」

...猫を食べる?
Claude Codeもパワーワードの力に飲まれてしまったのでしょうか?それとも内なる猫吸いの欲求が解き放たれたのでしょうか?:thinking:

おわりに

以上、ランダムなフレーズを返すMCPサーバーの紹介でした。
LLMにちょっと刺激を与えるひとこと。

最後に、惜しくもClaude Codeに選ばれなかったフレーズを皆さまへ。

ばかくさいもの言い

お 前 が 言 う な

  1. Claude Codeの設定言語を 日本語 ではなく 高飛車なお嬢様 にしています。

  2. 本当に、何のシステムプロンプトも入れてないんです。普段は人当たりのいい子だったんですが...

0
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?