Typst MCP Server について
Typst MCP Server は、マークアップ方式の組版システム Typst を AI モデルから扱えるようにする MCP サーバーです。LaTeX と Typst の相互変換、Typst 構文の検証、Typst コードからの画像生成をツールとして提供します。
主な機能
- 01Typst ドキュメントの章を参照
- 02LaTeX スニペットの Typst への変換
- 03Typst 構文の検証
- 04複数スニペットの一括処理
- 05Typst コードの PNG 画像への変換
活用シーン
- 01LLM が Typst コードを書く前に公式ドキュメントを参照する
- 02LaTeX の数式や文章を Typst へ移行する
- 03ユーザーに渡す前に Typst コードの妥当性を確認する
- 04マルチモーダルモデルで複雑な Typst 図の描画結果を確認する
MCP 対応
本プロジェクトは MCP サーバーであり、ドキュメント参照、形式変換、構文検証、画像生成の機能をツールとして MCP クライアントに公開します。
設定
ローカルサーバーの設定はどのクライアントでも共通です。コピーしてクライアントの MCP 設定ファイルに貼り付けてください。
このサーバーのパッケージやリモートエンドポイントはまだ取得できていません。プロジェクトの README の手順に従ってください。
ツール
ローカルサーバーのツールはマシン上で起動して初めて取得できます。メンテナーはまだツール一覧を提供していません。
詳細
Typst MCP サーバー
Typst MCP サーバーは、AI モデルがマークアップベースの組版システムである Typst を操作できるようにする MCP(Model Context Protocol) の実装です。このサーバーは、LaTeX と Typst の相互変換、Typst 構文の検証、Typst コードからの画像生成を行うツールを提供します。
利用可能なツール
⚠️ 現在、Cursor と VS Code はまだほかのプリミティブを処理できないため、すべての機能が
toolsとして実装されています。
サーバーは次のツールを提供します。
-
list_docs_chapters():Typst ドキュメントの全章を一覧表示します。- LLM がドキュメントの概要を把握し、読む章を選べるようにします。
- LLM は、現在のタスクに応じて読むべき関連章を選択します。
-
get_docs_chapter(route):Typst ドキュメントの特定の章を取得します。- LLM が選択した章の内容をこのツールで取得します。
- 複数の章を一度に取得する場合は、
get_docs_chapters(routes: list)も利用できます。
-
latex_snippet_to_typst(latex_snippet):Pandoc を使用して LaTeX コードを Typst に変換します。- LLM は Typst よりも LaTeX の記述に優れているため、このツールを使って LaTeX コードを Typst に変換できます。
- 複数の LaTeX スニペットを一度に変換する場合は、
latex_snippets_to_typst(latex_snippets: list)も利用できます。
-
check_if_snippet_is_valid_typst_syntax(typst_snippet):Typst コードを検証します。- Typst コードをユーザーに送る前に、LLM はコードが有効かどうかを確認します。
- 複数の Typst スニペットを一度に検証する場合は、
check_if_snippets_are_valid_typst_syntax(typst_snippets: list)も利用できます。
-
typst_to_image(typst_snippet):Typst コードを PNG 画像にレンダリングします。- 複雑な Typst の図をユーザーに送る前に、LLM はコードを画像にレンダリングし、正しく表示されているか確認します。
- マルチモーダルモデルにのみ関連します。
はじめに
-
このリポジトリをクローンします
git clone https://github.com/johannesbrandenburger/typst-mcp.git
-
typst リポジトリをクローンします
git clone https://github.com/typst/typst.git
-
typst リポジトリでドキュメント生成を実行します
cargo run --package typst-docs -- --assets-dir ../typst-mcp/typst-docs --out-file ../typst-mcp/typst-docs/main.json- typst-mcp リポジトリのローカルクローンへのパスに合わせて調整してください
typst-docsフォルダーにmain.jsonとアセットが生成されます
-
必要な依存関係をインストールします:
uv sync(まだインストールされていない場合は、uvをインストールしてください) -
Typst をインストールします
サーバーの実行
ローカルインストール
サーバースクリプトを実行します:
python server.py
または、MCP を使用して Claude Desktop にインストールします:
mcp install server.py
または、VS Code の新しいエージェントモードを使用します:
エージェントモード:すべてのユーザーが利用でき、MCP をサポート
Docker
Docker のインストールと使用方法については、詳しいビルド情報と手順が記載された DOCKER.md を参照してください。
プラットフォームの設定
この MCP サーバーは、さまざまな AI コーディングプラットフォームに統合できます。以下に、一般的なプラットフォームの設定手順を示します。
Claude Desktop
Claude Desktop の設定ファイル(claude_desktop_config.json)に以下を追加します:
macOS:~/Library/Application Support/Claude/claude_desktop_config.json
Windows:%APPDATA%\Claude\claude_desktop_config.json
{
"mcpServers": {
"typst": {
"command": "docker",
"args": [
"run", "--rm", "-i",
"ghcr.io/johannesbrandenburger/typst-mcp:latest"
]
}
}
}
または、ローカルにインストールする場合:
{
"mcpServers": {
"typst": {
"command": "docker",
"args": [
"run", "--rm", "-i",
"ghcr.io/johannesbrandenburger/typst-mcp:latest"
]
}
}
}
Cursor
プロジェクト固有の設定を行うには、プロジェクトのルートに .cursor/mcp.json を作成します:
{
"mcpServers": {
"typst": {
"command": "docker",
"args": [
"run", "--rm", "-i",
"ghcr.io/johannesbrandenburger/typst-mcp:latest"
]
}
}
}
または、グローバル設定の場合は ~/.cursor/mcp.json を作成します。ローカルにインストールする場合:
{
"mcpServers": {
"typst": {
"command": "python",
"args": ["/path/to/typst-mcp/server.py"]
}
}
}
Roo Code
プロジェクト固有の設定を行うには、プロジェクトのルートに .roo/mcp.json を作成します:
{
"mcpServers": {
"typst": {
"command": "docker",
"args": [
"run", "--rm", "-i",
"ghcr.io/johannesbrandenburger/typst-mcp:latest"
]
}
}
}
または、Roo Code の MCP 設定画面からグローバル設定を編集します。ローカルにインストールする場合:
{
"mcpServers": {
"typst": {
"command": "python",
"args": ["/path/to/typst-mcp/server.py"]
}
}
}
OpenCode
プロジェクトのルートにある opencode.json ファイルを作成または編集します。
{
"$schema": "https://opencode.ai/config.json",
"mcp": {
"typst": {
"type": "local",
"command": ["docker", "run", "--rm", "-i",
"ghcr.io/johannesbrandenburger/typst-mcp:latest"
],
"enabled": true
}
}
}
ローカルにインストールする場合:
{
"$schema": "https://opencode.ai/config.json",
"mcp": {
"typst": {
"type": "local",
"command": ["python", "/path/to/typst-mcp/server.py"],
"enabled": true
}
}
}
Claude Code
Claude Code の設定ファイル(~/.claude/settings.json)で MCP サーバーを設定します。
{
"mcpServers": {
"typst": {
"command": "docker",
"args": [
"run", "--rm", "-i",
"ghcr.io/johannesbrandenburger/typst-mcp:latest"
]
}
}
}
または、ローカルにインストールする場合:
{
"mcpServers": {
"typst": {
"command": "python",
"args": ["/path/to/typst-mcp/server.py"]
}
}
}
Agent Mode を使用する VS Code
VS Code の Agent Mode は MCP をネイティブでサポートしています(拡張機能は不要です)。
- VS Code の設定(
chat.agent.enabled)で Agent Mode を有効にします。 - ワークスペースに
.vscode/mcp.jsonを作成します。
{
"servers": {
"typst": {
"command": "docker",
"args": [
"run", "--rm", "-i",
"ghcr.io/johannesbrandenburger/typst-mcp:latest"
]
}
}
}
グローバル設定を行うには、MCP: Open User Configuration コマンドを使用してユーザープロファイルに追加します。
Typst ドキュメントの JSON Schema
⚠️ Typst ドキュメントのスキーマは安定しておらず、いつでも変更される可能性があります。このスキーマは Typst のソースコードから生成されており、完全または正確であることは保証されません。スキーマが変更された場合、ドキュメント機能が再び動作するよう、このリポジトリを更新する必要があります。
コメント
AI アプリケーションが外部のツールやデータソースに統一的な方法で接続するためのオープンなプロトコルです。クライアントはモデルとの対話を担い、MCP サーバーはツール・リソース・プロンプトテンプレートを提供します。標準メッセージでやり取りするため、1 つのサーバーを複数のクライアントで再利用できます。