mcpField
P
Pressa - LaTeX to PDF

Pressa - LaTeX to PDF

リモート
pressa.dev生産性0今日更新
リポジトリ公式サイト

Pressa - LaTeX to PDF について

Pressa は、LaTeX 文書を PDF に変換し、文書テンプレートを扱う MCP サーバーです。AI アシスタントで PDF を作成する用途向けで、基本的なコンパイルと公開テンプレートの機能は API キーなしで利用できます。

主な機能

  1. 01LaTeX から PDF を生成
  2. 02公開テンプレートの閲覧とレンダリング
  3. 03アカウントテンプレートの保存と管理
  4. 04修正案付きの構造化エラーを返却

活用シーン

  1. 01請求書、レポート、履歴書の PDF 作成
  2. 02公開テンプレートへのデータ入力
  3. 03LaTeX エラーの診断と再試行

MCP 対応

MCP クライアントに LaTeX コンパイルとテンプレートのツールを提供します。匿名モードではコンパイルと公開テンプレートを利用でき、API キーを設定するとアカウント向け機能が追加されます。

設定

リモートサーバーはインストール不要です。クライアントを選んで設定をコピーするか、ワンクリックで導入できます。

エンドポイントhttps://api.pressa.dev/mcp
インストールコマンドをコピー
Claude CodeTerminal
Cursor.cursor/mcp.json
VS Code.vscode/mcp.json
Claude Desktopclaude_desktop_config.json
Windsurf~/.codeium/windsurf/mcp_config.json

コマンドはターミナルで実行し、JSON は各クライアントの MCP 設定に貼り付けて再起動します。認可が必要なサーバーは初回接続時にログインを求めます。

パッケージ
npm@pressa/mcp0.11.4

ツール

4
パラメーター型必須説明
latexstringはい`\documentclass` と `\begin{document}...\end{document}` を含む完全な LaTeX ソース。
compilerenumいいえデフォルトは pdflatex です。匿名の呼び出しでは pdflatex のみ使用できます。pdflatex | xelatex | lualatex

詳細

@pressa/mcp

Pressa 用の MCP(Model Context Protocol)サーバーです。LaTeX を入力すると、出版品質の PDF を出力します。このサーバーを使うと、AI アシスタントが標準化されたインターフェースを通じて文書をコンパイルできます。

開始に API キーは不要です。 サーバーを追加し、PDF を依頼すれば、PDF が生成されます。後からキーを追加すると、利用上限が引き上げられます。

セットアップ

MCP クライアントの設定に、以下を追加します(例:Claude Desktop、Cursor)。

{
  "mcpServers": {
    "pressa": {
      "command": "npx",
      "args": ["-y", "@pressa/mcp"]
    }
  }
}

設定はこれだけです。サーバーは匿名モードで起動し、compile ツールと公開テンプレートギャラリーを提供します。これらは認証情報なしで利用でき、1 日あたり PDF を 3 件まで正常に生成できます。失敗した試行はこの上限に含まれないため、アシスタントは LaTeX を無料で何度でも調整できます。

他の機能を利用するには、キーを追加します。

{
  "mcpServers": {
    "pressa": {
      "command": "npx",
      "args": ["-y", "@pressa/mcp"],
      "env": {
        "PRESSA_API_KEY": "pressa_your_key_here"
      }
    }
  }
}

pressa.dev で無料のキーを取得できます。所要時間は約 30 秒で、クレジットカードは不要です。キーを追加すると、月あたりのコンパイル上限が 50 回に引き上げられ、テンプレート、アセット、レンダリング用のツールが登録されます。

ホスト型サーバー(インストール不要)

同じツールは https://api.pressa.dev/mcp でも Streamable HTTP 経由で提供されています。そのため、リモート MCP サーバーに対応したクライアントなら、Node.js もローカルプロセスも不要です。

claude mcp add --transport http pressa https://api.pressa.dev/mcp

キーなしで利用する場合、compile と公開テンプレートギャラリー(list_public_templates、get_public_template、render_public_template)を提供します。Authorization: Bearer <key> ヘッダーを送信すると、テンプレート、アセット、レンダリング用のツールも登録されます。

環境変数

変数必須デフォルト説明
PRESSA_API_KEYいいえ-Pressa API キー(pressa_ で始まります)。設定されていない場合、サーバーは匿名モードで実行され、compile と公開テンプレート用のツールのみを提供します。
PRESSA_API_URLいいえhttps://api.pressa.devAPI のベース URL

匿名モード

PRESSA_API_KEY が設定されていなくても、サーバーは起動を拒否せずに起動し、アカウントなしで使えるツールのみを登録します。登録されるのは、compile、list_public_templates、get_public_template、render_public_template です。アカウントが必要なツールは登録されません。正常に実行できないツールを登録するより、登録しないほうがよいためです。

匿名モードの制限:pdflatex のみ、最大 3 ページ、ソースは 30 KB まで、画像アセットは使用不可、PDF のリンクは 1 時間後に期限切れとなります。

エラー処理

コンパイルに失敗すると、生の TeX ログではなく、構造化された診断情報が返されます。内容は、エラーの種類、問題のあるコマンド、具体的な修正案(多くの場合、不足している \usepackage)です。アシスタントには、コンパイラログをユーザーに見せるのではなく、修正を適用して自動的に再試行することが想定されています。

ツール

compile

LaTeX ソースコードを PDF にコンパイルします。

入力:

パラメーター型必須説明
latexstringはいLaTeX ソースコード全体。\documentclass、\begin{document}、\input{}、または \include{} を含める必要があります。プレーンテキスト、Markdown、または生のメモは not_latex_source(422)で拒否されます。AI エージェントはユーザーに作成を求めるのではなく、自ら LaTeX を生成する必要があります。
compilerstringいいえ"pdflatex"(デフォルト)、"xelatex"、または "lualatex"(Pro および Business プランのみ)

各プランには、文書あたりのページ数、LaTeX ソースのサイズ、PDF 出力サイズ、コンパイルのタイムアウトに関する制限があります。コンパイルがプランのページ上限を超えても、その文書は月間利用枠に加算されず、MCP の応答には制限とアップグレード用 URL が含まれます。LaTeX 以外の入力は、LLM がユーザーの介入なしに自動修正できるよう、構造化された requirements リストと example_template を含めて拒否されます。

出力(成功時):

{
  "job_id": "ffc2bd62-3b67-45d6-be14-b529c4b9489f",
  "pdf_url": "https://api.pressa.dev/api/v1/pdfs/ffc2bd62...?sig=xxx&exp=xxx",
  "expires_at": "2026-04-09T20:44:55Z",
  "pages": 1,
  "compilation_time_ms": 359,
  "usage": {
    "plan": "free",
    "compilations_this_month": 9,
    "monthly_limit": 50
  }
}

出力(エラー時): コンパイルログとエラー行番号。

list_public_templates、get_public_template、render_public_template

Pressa の公開ドキュメントテンプレート(pressa.dev/templates):請求書、発注書、梱包明細書、納品書、領収書、レポート、証明書、履歴書、カバーレターが揃っています。キーは不要です。

  • list_public_templates:すべてのテンプレートの概要、プレビュー画像の URL、色を取得します。同じドキュメント(document、例:履歴書のデザインが 5 種類)のデザインは、同じデータを使用します。
  • get_public_template(template:スラッグ):フィールド(JSON スキーマ)、サンプルデータ、入力手順を取得します。
  • render_public_template(template:スラッグ、data:サンプルと同じ形式のオブジェクト、color:任意):テンプレートにデータを入力し、pdf_url を返します。フィールドが欠落している場合や型が異なる場合は、修正が必要な項目のリストが返されます。料金はかかりません。

各テンプレートには、アシスタント向けの平易な手順も https://pressa.dev/templates/<slug>/agent.md に用意されています。

usage

現在の API 使用状況の統計を取得します。

入力: なし。

出力:

{
  "user": {
    "email": "[email protected]",
    "username": "user",
    "plan": "free"
  },
  "usage": {
    "compilations_this_month": 9,
    "monthly_limit": 50,
    "remaining": 41,
    "resets_at": "2026-04-30T23:59:59Z"
  },
  "api_key": {
    "prefix": "pressa_a",
    "name": "my-key",
    "total_requests": 15,
    "last_used_at": "2026-04-08T20:44:55Z"
  }
}
save_template

名前を指定して LaTeX テンプレートを保存または更新します。有料プランのみ利用できます。アップサート方式です。同じ名前で 2 回目に呼び出すと、最初の内容が上書きされます。

パラメーター型必須説明
namestringはいテンプレート名(最大 100 文字)。ユーザーごとに一意です。
latex_contentstring新しいテンプレートの場合テンプレート本文の LaTeX ソース全体。placeholder_engine: "liquid" を指定して保存済みソースを変換する場合は省略できます。
descriptionstringいいえ人が読める短い概要(最大 500 文字)。list_templates に表示されます。
instructionsstringいいえエージェント向けの手順書(プレーンテキストの Markdown、最大 50000 文字)。テンプレートの入力方法(既定値、ワークフローのルール、例外ケース、条件分岐など)を説明します。省略可能ですが、動的な部分があるテンプレートでは推奨されます。下記の注記を参照してください。
placeholder_enginestringいいえ"liquid":ソースに Liquid プレースホルダー({{ amount }})が含まれ、render によって入力されます。既存の生の LaTeX テンプレートに指定すると、その場で変換されます(ID、名前、手順は変わりません)。"none":波括弧がプレースホルダーのように見えるだけの生の LaTeX です。省略すると、テンプレートの現在の種類が維持されます。

description と instructions の違い: description は UI に表示される 1 行の概要です(「Toptal 標準月次請求書」など)。instructions は、テンプレートにデータを入力する際に AI エージェントが LaTeX と併せて読む、より詳しい手順書です(「ユーザーには合計金額のみを尋ねる。日付は本日の日付。請求書番号の形式は YYYYMMDD-N とし、N は暦年内の連番。EU の顧客には VAT の行を追加する」など)。これらは別々のフィールドです。

生の LaTeX とプレースホルダーテンプレート: 生の LaTeX テンプレートは、保存された内容のままコンパイルされます。プレースホルダーテンプレートは render によって JSON データが入力されるため、レイアウトは変わりません。placeholder_engine を指定せずに Liquid プレースホルダーを含むソースを送信すると、liquid_placeholders_in_v1_template エラーが返されます。生の LaTeX では波括弧がそのまま PDF に出力されるためです。プレースホルダーの保存時に liquid_syntax_error が返された場合は、Liquid が誤って解釈する LaTeX の文字列(通常は波括弧の直後のコメント、\foo{%)を {% raw %}...{% endraw %} で囲んでください。

list_templates

ユーザーが保存したテンプレートの一覧を取得します。応答を小さくするため、latex_content と instructions は含まれません。

入力: なし。

返される配列の各項目には、id、name、description、updated_at、latex_size_bytes、has_instructions(ブール値)が含まれます。has_instructions フラグを使って、後続の get_template 呼び出しで有用な手順書が返されるかどうかを判断してください。

get_template

ID または名前を指定して単一のテンプレートを取得します。1 回のリクエストで latex_content 全体と(存在する場合は)instructions が返されるため、エージェントはレイアウトと手順書をまとめて取得できます。

パラメーター型必須説明
id_or_namestringはい数値 ID または URL で使用できるテンプレート名。
delete_template

ID または名前でテンプレートを削除します。

パラメーター型必須説明
id_or_namestringはい数値の ID、または URL で使用可能なテンプレート名です。

開発

npm install
npm run build
npm start

ライセンス

MIT

コメント

MCP は初めてですか?

プロトコルの概要から最初のサーバーの導入まで、よくある疑問にまとめて答えます。

AI アプリケーションが外部のツールやデータソースに統一的な方法で接続するためのオープンなプロトコルです。クライアントはモデルとの対話を担い、MCP サーバーはツール・リソース・プロンプトテンプレートを提供します。標準メッセージでやり取りするため、1 つのサーバーを複数のクライアントで再利用できます。