interpro-mcp-server について
EMBL-EBI API を使って InterPro のタンパク質ファミリー、ドメイン、リピート、機能部位を調べる MCP サーバーです。バイオインフォマティクス研究向けに、エントリー検索、タンパク質・構造への注釈対応付け、配列スキャンを提供します。
主な機能
- 01テキストまたは GO 注釈によるエントリー検索
- 02エントリー情報とクラン所属の取得
- 03UniProt タンパク質や PDB 鎖への注釈マッピング
- 04指定ドメインを持つタンパク質の検索
- 05配列スキャンとジョブ結果の取得
活用シーン
- 01タンパク質ファミリーの注釈と文献の調査
- 02UniProt タンパク質や PDB 鎖上のドメイン位置の特定
- 03分類群やプロテオーム内で特定シグネチャを持つタンパク質の検索
- 04新しいタンパク質配列のドメインスキャン
MCP 対応
STDIO または Streamable HTTP、およびパブリックホスト版を通じて、InterPro 検索と配列解析の 9 種類のツールを MCP クライアントに公開します。新しい InterProScan ジョブには運用者が設定する連絡先メールが必要です。
設定
リモートサーバーはインストール不要です。クライアントを選んで設定をコピーするか、ワンクリックで導入できます。
https://interpro.caseyjhand.com/mcpclaude mcp add --transport http cyanheads-interpro https://interpro.caseyjhand.com/mcp{"mcpServers":{"cyanheads-interpro":{"type":"http","url":"https://interpro.caseyjhand.com/mcp"}}}Cursor で開く{"servers":{"cyanheads-interpro":{"type":"http","url":"https://interpro.caseyjhand.com/mcp"}}}VS Code で開く{"mcpServers":{"cyanheads-interpro":{"type":"http","url":"https://interpro.caseyjhand.com/mcp"}}}{"mcpServers":{"cyanheads-interpro":{"serverUrl":"https://interpro.caseyjhand.com/mcp"}}}コマンドはターミナルで実行し、JSON は各クライアントの MCP 設定に貼り付けて再起動します。認可が必要なサーバーは初回接続時にログインを求めます。
ツール
6| パラメーター | 型 | 必須 | 説明 |
|---|---|---|---|
| topic | enum | はい | 参照トピックです。release は最新の上流メタデータを取得します。databases | entry_types | accession_patterns | taxa | release |
詳細
@cyanheads/interpro-mcp-server
InterPro エントリーを検索し、UniProt タンパク質や PDB 構造にドメインと機能部位をマッピングし、ドメインでタンパク質を検索して、MCP 経由で未加工のタンパク質配列をスキャンします。STDIO または Streamable HTTP に対応しています。
公開ホスト型サーバー: https://interpro.caseyjhand.com/mcp
概要
InterPro と、統合されているメンバーデータベース(Pfam、PROSITE、SMART、CDD、PANTHER など)から、タンパク質ファミリー、ドメイン、リピート、機能部位を、認証情報不要の EMBL-EBI InterPro API を介して取得します。エントリーを検索して完全なメタデータを読み取り、UniProt タンパク質または PDB エントリーの鎖を残基座標付きのアノテーションにマッピングし、Pfam、CDD、PIRSF のクランをたどり、特定のシグネチャを持つタンパク質を検索して、未加工のタンパク質配列をスキャンできます。認証情報の設定は不要で、STDIO、Streamable HTTP、または上記の公開ホスト型エンドポイント経由で動作します。新しい InterProScan ジョブを開始するには、運用担当者が設定した連絡先メールアドレスが必要です(設定を参照)。
ツール
| ツール | 説明 |
|---|---|
interpro_search_entries | GO アノテーションによる InterPro エントリの検索、またはテキスト、エントリタイプ、統合先アクセッションによる InterPro エントリおよびメンバーシグネチャの検索 |
interpro_get_entry | 1 件のエントリの説明、階層、メンバーシグネチャ、GO 用語、文献、相互参照、クランへの所属、カバレッジカウンターを読み取ります |
interpro_get_protein_domains | UniProt タンパク質のドメイン、ファミリー、リピート、機能部位を配列座標に対応付けます。任意で 1 つの残基を指定できます |
interpro_get_clan | Pfam、CDD、PIRSF のセットを読み取り、そのメンバーをページごとに取得します。任意で関係グラフを含められます |
interpro_find_proteins_by_domain | あるエントリを持つ UniProt タンパク質を検索します。デフォルトではレビュー済みヒトタンパク質が対象で、任意で 1 つのプロテオーム内に絞り込めます |
interpro_get_structure_domains | 1 件の PDB エントリのタンパク質鎖にシグネチャをマッピングし、鎖、著者、UniProt の各番号体系で示します |
interpro_scan_sequence | 生のタンパク質配列からドメイン、ファミリー、部位の一致を検索します。UniParc 配列では事前計算結果を使用し、それ以外は InterProScan ジョブを実行します |
interpro_get_scan_result | interpro_scan_sequence で開始した InterProScan ジョブのステータスと一致結果を読み取ります |
interpro_list_reference | データベースのスラッグ、エントリタイプ、アクセッションのパターン、一般的な分類群 ID、現在の InterPro リリースを確認します |
機能リファレンス
interpro_search_entries tool
sourceDatabase(デフォルトはinterpro)に加え、任意でquery(1~300 文字)、entryType、goTerm(GO:0003677形式)、goCategory(P、F、C)、integratedInto(IPRアクセッション。メンバーデータベースのみ)を指定できます。フィルターは必須ではなく、すべて省略するとデータベースを閲覧しますgoTermとgoCategoryにはsourceDatabase: "interpro"が必要です。1 回の呼び出しにつき GO フィルターは 1 つだけ選択してください。両方を組み合わせると、用語が指定された場合に上流がカテゴリを無視するため、ネットワークアクセス前に失敗します。メンバーシグネチャを検索する場合は、GO フィルターで InterPro を検索した後、interpro_get_entryでmember_databasesを読み取るか、一致する InterPro アクセッションをintegratedIntoに指定してメンバーデータベースを検索してください- カーソルによるページ分割に対応します。
limitは正の整数で、上限は 100(デフォルトは 20)です。これを超えるリクエストは通知とともに上限値に切り詰められます。entries、page(total、returned、limit、hasMore、nextCursor)、適用されたqueryを返します。page.limitは実際に適用されたページサイズです
interpro_get_entry tool
accessionは必須です。省略された場合、sourceDatabaseは標準的なアクセッションのプレフィックスから推定されます。セットアクセッション(CL…)はentry_not_foundとして失敗し、interpro_get_clanを案内します- 任意の
sectionsでは、description、hierarchy、member_databases、go_terms、literature、cross_references、wikipedia、counters、overlaps_withから選択できます。コアメタデータと上流由来の未知のフィールドは保持されます。sectionsを省略すると、詳細情報全体を返します - 任意の正の整数
overlapLimitでoverlaps_withレコード全体をページ分割できます。overlapOffsetを指定するにはoverlapLimitが必要です。開始値は 0 で、overlapsPage.nextOffsetを使用して次のページに進みます。ページ分割には、重複情報を保持する必要があります。選択した項目と省略した項目が通知されます。重複データが存在しない場合や null の場合は、空のリストとは区別されます includeThumbnail: trueを指定しない限り、Wikipedia のサムネイルは省略され、省略された内容を通知しますentry.descriptionTextは、元のentry.description(HTML とアノテーションフラグを含む)を変更せずに保持しながら、段落、リスト、表の区切りを含む読みやすいテキストを追加します。説明が除外されている場合、または読み取り可能なテキストが提供されていない場合は省略されます- 取り下げられたレコードは、削除日と短縮名を含む
entry_withdrawnとして失敗します
interpro_get_protein_domains tool
- UniProt の正規の6文字または10文字の
accession(アイソフォームのサフィックスなし)。任意のresiduePosition(1始まり、両端を含む)を指定すると、その位置を含むフラグメントを持つ一致をすべて保持し、一致した各レコードのフラグメントはすべてそのまま返します。includeExtraFeaturesを指定すると、ディスオーダーや膜貫通領域などの予測された特徴が追加されます includeResidueAnnotations: trueを指定すると、プロバイダーの機能ルール注釈であるresidueAnnotationsが追加されます。残基フィルターを指定すると、位置を含むフラグメントがあるルール全体が保持され、説明、残基文字、位置、出典情報もそのまま残ります- 大きなマップは、100,000バイトの応答上限内で、レコード全体を単位とするセグメントに分割して返されます。順序は、一致、要求された追加特徴、要求された残基ルールです。
coverage.nextCursorをたどり、hasMoreがfalseになるまで続けてください。最初のセグメントにはタンパク質のメタデータが含まれます。空のセグメントから注釈がないとは判断できません。残基注釈は該当する段階に達するまで省略され、{}はその段階で選択されたルールがなかったことを示します - 不連続なフラグメント、モデル、上流のスコアは返された状態のまま保持されます。
residue_out_of_rangeとprotein_not_foundは型付きの失敗です
interpro_get_clan tool
- Pfam(
CL0016)、CDD(cl21453)、またはPIRSF(PIRSF000047)のセットを指定するaccession。sourceDatabase(pfam、cdd、pirsf)はプレフィックスから推定されます。メンバーはcursorでページ分割され、正の整数limitは最大100(デフォルトは20)です。上限を超える要求は通知とともに切り詰められ、page.limitに適用後のサイズが示されます includeRelationships: trueを指定すると、応答上限に収まる分割で関係グラフが追加されます。relationshipsPage.nextOffsetをrelationshipOffsetとして渡してください。このパラメーターにはincludeRelationshipsの指定が必要ですincludeThumbnailはinterpro_get_entryと同様に動作します。セットが見つからない場合はclan_not_foundです
interpro_find_proteins_by_domain tool
accessionと、任意のsourceDatabaseを指定します。taxonId(NCBI、デフォルトは9606)とreviewedOnly(デフォルトはtrue。falseの場合、レビュー済みと未レビューのタンパク質が対象です)はqueryに反映されます- 任意の
isFragmentを指定すると、フラグメントとして注釈されたタンパク質(true)、またはフラグメントとして注釈されていないタンパク質(false)を選択できます。省略すると両方が含まれます。falseであっても、配列が完全であることは示しません。明示的に指定した選択条件はqueryに含まれ、カーソルをたどる際も変更しないでください - 任意の
architectureIdには、interpro_get_protein_domainsのprotein.ida_accessionを指定できます。40文字の16進数識別子で、小文字に正規化されます。同値であることは、プロバイダーによるPfamアーキテクチャのグループ分けを意味し、機能が同等であることを意味しません。カーソルをたどる際も変更しないでください - カーソルでページ分割され、正の整数
limitは最大50(デフォルトは20)です。上限を超える要求は通知とともに切り詰められ、page.limitに適用後のサイズが示されます。通常の結果には、タンパク質の概要、一致したエントリーの位置、分類群の系統、およびネイティブのextra_fields.is_fragment注釈が保持されます。状態が欠落またはnullの場合は不明のままです。アーキテクチャでフィルターした行は、値が提供されていればネイティブのextra_fields.ida_idを保持し、detailAvailabilityを使用して、エントリーや分類群の詳細が利用できない場合と、実際に空の配列の場合を区別します - 任意の
proteomeId(大文字小文字を区別せず、UPに9桁の数字を続けた形式。正規形は大文字。例:interpro_get_protein_domainsのprotein.proteome)を指定すると、他の選択条件に加えてUniProtプロテオームを1つに絞り込めます。taxonIdはデフォルトの9606を含め、引き続き適用されます。プロテオームからタンパク質が返されるのは、taxonIdがその生物またはその祖先の場合に限られます。値はqueryに反映され、カーソルをたどる際も変更しないでください。この場合、行には上流のproteomes配列が含まれ、アーキテクチャの行にはdetailAvailability.proteomesが追加されます - ヒットがない場合も通知付きの成功です。APIは、未知のエントリー、未知の分類群、未知のプロテオーム、および空の積集合を同じように応答するためです
interpro_get_structure_domains ツール
pdbIdは必須です。1tsrのような4文字の PDB ID を指定します。大文字と小文字は区別されません(accessionは別名として使用できます)。拡張形式のpdb_0000…ID はサポートされていません。任意のchainを指定すると、マップを1つのタンパク質鎖に限定できます。大文字と小文字は区別されます(Aとaは異なります)。核酸鎖は一覧に含まれません- 各マッチでは、
entryでまとめられた鎖レコードがstructuresに列挙されます。各レコードには、鎖の番号付けでの位置(start/end、1始まり)と著者の番号付けでの位置(auth_start/auth_end。nullの場合や欠番がある場合があります)、UniProt の番号付け、および鎖から UniProt への残基マップが含まれます。UniProt へのマッピングがない鎖では、proteinはnullです - InterPro は、マッチごとに最大20件の鎖レコードをネストします。
chainRecordLimitReachedは、その上限に達したマッチを示します。この場合、返されていない鎖が含まれることがあります。1つの鎖をすべて取得するには、chainを指定してください - セグメントには、レスポンスの上限100,000バイト以内に収まるよう、マッチ全体が含まれます。
hasMoreがfalseになるまでcoverage.nextCursorをたどってください。最初のセグメントにはstructure(タンパク質のchainsを含むメタデータ)が含まれます - DNA のみのエントリではマッチなしで成功し、通知が返されます。不明または廃止された ID は
structure_not_found、構造内のタンパク質鎖にない鎖はavailableChainsを含むchain_not_foundとしてエラーになります
interpro_scan_sequence ツール
sequenceは必須です。残基を示す文字で記述したタンパク質配列を1つ指定します。任意で、その前に FASTA ヘッダー行を1行付けられます(最大100,000文字)。大文字と小文字、空白、改行は無視されます。数字、ギャップ、終止記号(*)は使用できません。入力が空の場合や、FASTA レコードが複数ある場合もエラーになります- UniParc に登録済みの配列には、事前計算済みのマッチが直ちに返されます(
source: "precalculated")。それ以外の配列では、EBI Job Dispatcher を通じて InterProScan 6 のジョブが1つ開始されます(source: "interproscan")。通常、処理には約10分かかるため、新規配列の最初の結果は多くの場合、ステータスがsubmitted、queued、またはrunningのjobIdです waitSeconds(0~35、既定値は30)は、新たに開始したジョブの結果を待ってからjobIdを返すまでの時間を設定します。実行中のジョブがある配列を再度指定すると、同じjobIdが返されます(サーバープロセスごとに追跡されます)。プロセスあたり同時実行できるジョブは最大25件です。上限を超えると、retryAfterを含むrate_limitedとして呼び出しが失敗しますINTERPRO_SCAN_EMAILが設定されていない場合、利用できるのは事前計算済みのマッチのみです。それ以外の配列はscan_not_configuredとしてエラーになります(設定を参照)。ホスト型エンドポイントでは、この値は設定されていません- マッチは InterProScan のレコードそのままの形式で、最も早い位置を基準にソートされ、1始まりの両端を含む位置で示されます。レコード全体が100,000バイトの上限内に収まるようセグメント化されます。同じ
sequenceを指定してcoverage.nextCursorをたどってください。このツールは読み取り専用ではありません。呼び出しによってジョブが開始されることがあります
interpro_get_scan_result ツール
jobIdは必須です。interpro_scan_sequenceが返した値を指定してください。waitSeconds(0~35、既定値は30)を指定すると、保留中のジョブの結果を待ちます。0の場合はステータスを1回確認します- 完了したジョブでは、マッチとともに
status: "finished"が返されます。queuedまたはrunningの場合はマッチを返さないため、後で再度確認してください。完了したジョブでは、さらにinterproVersionとinterproscanVersionも返されます。大きな結果は、同じjobIdを指定してcoverage.nextCursorをたどると続きが取得できます - ジョブと結果は、送信から7日後に期限切れになります。不明または期限切れのジョブは
scan_not_found、エラーで終了したジョブはscan_failedとしてエラーになり、どちらもinterpro_scan_sequenceに案内します
interpro_list_reference ツール
topicは必須です。databases、entry_types、accession_patterns、taxa、またはreleaseを指定します。最初の4項目はローカルで処理され、ネットワーク呼び出しは行われません。taxaには一般的な例が列挙されますが、すべての分類群が含まれるわけではありませんreleaseは現在の InterPro のバージョン、日付、およびデータベースごとのエントリ数を取得します。上流からの2つの応答でバージョンが一致しない場合は、release_changedとしてエラーになります
特長
@cyanheads/mcp-ts-core を基盤としています。stdio および Streamable HTTP トランスポート、切り替え可能な認証(none/jwt/oauth)、交換可能なストレージ(in-memory、filesystem、Supabase、Cloudflare KV/R2/D1)、オプションの OpenTelemetry トレース機能を備えた構造化ログに対応しています。
InterPro 固有の機能:
- 15 個のデータベーススラッグ(
interpro、pfam、prosite、profile、smart、cdd、panther、cathgene3d、ssf、ncbifam、hamap、prints、pirsf、sfld、antifam)と 11 個のエントリータイプに対応しています。標準的なアクセッション接頭辞からエントリーのデータベースを推定し、競合するルートはローカルで拒否します。 - InterPro API へのリクエストを毎秒 1 件に制限するプロセス全体で共有のリクエストペーサーを備えています。ツール呼び出しごとに、ペーシング、再試行、すべてのリクエストを含む 50 秒の予算を設定し、上流レスポンスの上限を 4 MiB としています。
- 配列スキャンでは、InterProScan 6 のジョブを送信する前に、API キー不要の Matches API で事前計算済みの結果を確認し、同じ配列の再リクエストには実行中のジョブを再利用します。
- API の本文なし 204 レスポンスを処理できる上流 HTTP/1.1 クライアントを使用します。このレスポンスは Node のネイティブ
fetchでは拒否されます。 - 上流のメタデータが不足している場合、値を補完せず、
nullのまま返すか省略します。
エージェントに適した出力:
content[]には完全な出力をコンパクトな JSON として格納し、すべての URL のインデックスをリンクとして、すべての画像のインデックスを画像として格納します。そのため、一方の形式しか読み取らないクライアントでも同じデータを取得できます。- クエリにひも付けられた不透明なカーソルを使用し、結果が一部のみの場合は、次に呼び出すべき正確な呼び出しを通知します。
- 型付きの失敗理由(
entry_not_found、invalid_cursor、upstream_rate_limitedなど)それぞれに、復旧のヒントを付けています。 - 座標は配列アノテーションを示すものであり、病原性や臨床的意義を示すものではありません。
interpro-guideエージェントスキル(識別子チェーン、ゲート、チェーン/著者/UniProt の番号付け)を、MCP 経由、およびプラグインのインストール、npm パッケージ、Docker イメージで公開します。
はじめに
インストール不要で、ホストされたインスタンスに接続できます。
claude mcp add --transport http interpro-mcp-server https://interpro.caseyjhand.com/mcp
または、ローカルで実行します。
claude mcp add interpro-mcp-server -- npx -y @cyanheads/interpro-mcp-server
その他のクライアントでは、MCP 設定ファイルに次の内容を追加してください。
{
"mcpServers": {
"interpro-mcp-server": {
"command": "npx",
"args": ["-y", "@cyanheads/interpro-mcp-server"]
}
}
}
API キーは不要です。Docker またはソースからのビルドについては、サーバーの実行を参照してください。
設定
InterPro API に API キーは不要です。サーバーには任意の変数が 1 つあり、以下はこのフレームワークでよく設定される変数です。
| 変数 | 説明 | デフォルト |
|---|---|---|
INTERPRO_SCAN_EMAIL | InterProScan ジョブの送信時に EBI Job Dispatcher が必要とする任意の連絡先メールアドレスです。未設定の場合、interpro_scan_sequence は UniParc にすでに登録されている配列の事前計算済みマッチを引き続き返し、それ以外の配列では scan_not_configured として失敗します。interpro_get_scan_result は既存のジョブを引き続き読み取ります。サーバーのすべての呼び出し元で 1 つのアドレスを共有し、EBI はジョブデータとともにそのアドレスを 7 日間保持します。ホストされたエンドポイントでは、この変数を設定しません。 | 未設定 |
MCP_TRANSPORT_TYPE | トランスポート:stdio または http。 | stdio |
MCP_HTTP_PORT | HTTP サーバーのポート。 | 3010 |
MCP_HTTP_HOST | HTTP サーバーのホスト。 | 127.0.0.1 |
MCP_HTTP_ENDPOINT_PATH | HTTP エンドポイントのパス。 | /mcp |
MCP_SESSION_MODE | HTTP セッションモード:stateless、stateful、または auto。 | stateless |
MCP_AUTH_MODE | 認証:none、jwt、または oauth。認証を有効にすると、各ツールにそのツールの tool:<tool_name>:read スコープが必要です。ジョブを開始できる interpro_scan_sequence には、tool:interpro_scan_sequence:write が必要です。 | none |
MCP_LOG_LEVEL | ログレベル(debug、info、notice、warning、error)。 | info |
LOGS_DIR | ログファイルのディレクトリ(Node.js のみ)。 | <app-root>/logs |
STORAGE_PROVIDER_TYPE | ストレージバックエンド:in-memory、filesystem、supabase、cloudflare-kv/r2/d1。 | in-memory |
OTEL_ENABLED | OpenTelemetry を有効にします。 | false |
よく使用するフレームワークのオーバーライドについては、.env.example を参照してください。
サーバーの実行
ローカル開発
Bun v1.4.0 以上(または Node.js v24 以降)が必要です。
-
クローンしてインストール:
git clone https://github.com/cyanheads/interpro-mcp-server.git cd interpro-mcp-server && bun install cp .env.example .env # optional; the server needs no keys -
ビルドして実行:
# One-time build bun run rebuild # Run the built server bun run start:stdio # or bun run start:http -
チェックとテストを実行:
bun run devcheck # Lint, format, typecheck, security bun run test # Vitest test suite bun run lint:mcp # Validate MCP definitions against spec
Docker
docker run --rm -p 3010:3010 ghcr.io/cyanheads/interpro-mcp-server:latest
イメージはデフォルトで HTTP トランスポート、ステートレスセッションモードを使用し、ログを /var/log/interpro-mcp-server に出力します。MCP クライアントから stdio 経由で実行するには、"command": "docker" と "args": ["run", "-i", "--rm", "-e", "MCP_TRANSPORT_TYPE=stdio", "ghcr.io/cyanheads/interpro-mcp-server:latest"] を使用します。ローカルでビルドするには、docker build -t interpro-mcp-server . を実行します。OpenTelemetry のピア依存関係はデフォルトでインストールされます。これらを省略するには、--build-arg OTEL_ENABLED=false を指定してビルドします。
プロジェクト構成
| ディレクトリ | 目的 |
|---|---|
src/index.ts | createApp() のエントリーポイントです。ツールを登録し、InterPro および sequence-scan サービスを起動します。 |
src/config | サーバー固有の環境変数の解析(INTERPRO_SCAN_EMAIL)を行います。 |
src/mcp-server/tools | ツール定義(*.tool.ts)です。ツールは 9 個あります。 |
src/services/interpro | InterPro サービスです。HTTP/1.1 アダプター、ペーサーと期限設定、アクセッションのルーティング、カーソル、スキーマ、共有結果フォーマッターを含みます。 |
src/services/sequence-scan | 配列の解析、事前計算済みルックアップ、InterProScan ジョブの送信とポーリング、スキャン結果のセグメント化を行います。 |
skills/ | 公開されているエージェントスキル(interpro-guide)です。MCP 経由で提供され、パッケージにも同梱されます。 |
tests/ | src/ の構成を反映したユニットテストと統合テストです。 |
開発ガイド
開発ガイドラインとアーキテクチャのルールについては、CLAUDE.md を参照してください。要点は次のとおりです。
- ハンドラーは例外をスローし、フレームワークが捕捉します。ツールのロジックに
try/catchは使用しません。 - リクエスト単位のログ記録には
ctx.logを使用します。 - 新しいツールは
src/index.tsのcreateApp()配列に登録します。 - 外部 API の呼び出しはラップします。生データを検証し、ドメイン型に正規化して、出力スキーマに従って返します。不足しているフィールドを決して捏造しないでください。
コントリビューション
問題の報告を歓迎します。提出前にチェックとテストを実行してください。
bun run devcheck
bun run test
ライセンス
このプロジェクトは Apache 2.0 License の下でライセンスされています。詳細は LICENSE ファイルを参照してください。
データは、EMBL-EBI API を通じて InterPro およびそのメンバーデータベースから取得しています。ライセンスはメンバーデータベースごとに異なるため、InterPro とデータの提供元データベースを明記してください。InterPro のライセンスページおよび EMBL-EBI の利用規約を参照してください。
コメント
AI アプリケーションが外部のツールやデータソースに統一的な方法で接続するためのオープンなプロトコルです。クライアントはモデルとの対話を担い、MCP サーバーはツール・リソース・プロンプトテンプレートを提供します。標準メッセージでやり取りするため、1 つのサーバーを複数のクライアントで再利用できます。