mcpField
P
Para

Para

リモート
github.com/erudikaクラウド・インフラ574今日更新
リポジトリ

Para について

Paraは、オブジェクトの保存と検索を必要とするアプリ開発者向けのマルチテナント型バックエンドサーバー/フレームワークです。JVMアプリへの組み込みと単独のAPIサーバー運用に対応し、AIエージェント用のMCPサーバーも備えています。

主な機能

  1. 01マルチテナントのオブジェクト保存と検索
  2. 02データベースに依存しないデータ保存
  3. 03全文検索とオブジェクトキャッシュ
  4. 04権限管理とJWT認証
  5. 05プラグイン構成とWebコンソール

活用シーン

  1. 01Web・モバイルアプリのバックエンド構築
  2. 02複数アプリ間のデータ分離
  3. 03MCP経由でのAIエージェントによるバックエンド操作

MCP 対応

Paraは、AIエージェントがバックエンドと対話するためのMCPサーバーを備えています。

設定

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

エンドポイントhttp://localhost:8080/v1/_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 設定に貼り付けて再起動します。認可が必要なサーバーは初回接続時にログインを求めます。

すべてのエンドポイント
Streamable HTTPhttp://localhost:8080/v1/_mcp認証が必要

ツール

詳細

Logo

クラウド向けのスケーラブルなマルチテナント型バックエンド。

Docker pulls Maven Central Version Join the chat at https://gitter.im/Erudika/para

Para は、オブジェクトの永続化と取得のための、スケーラブルなマルチテナント型バックエンドサーバー/フレームワークです。 バックエンドの操作を担うことで、アプリケーションの構築やプロトタイプの作成を迅速化できます。 JVM ベースのアプリケーションの一部として利用することも、複数のアプリケーションやクライアントが接続する、スタンドアロンのマルチテナント型 API サーバーとしてデプロイすることもできます。

「pára」はブルガリア語で「蒸気」を意味します。蒸気がさまざまなものを動かすために使われるように、 Para を使ってモバイルアプリや Web アプリのバックエンドを動かすことができます。

Para とほかのオープンソースのバックエンドフレームワークとの比較をご覧ください。

このプロジェクトは、独立したブートストラップ企業である Erudika によって全面的に資金提供され、サポートされています。

機能
  • Amazon の Signature V4 アルゴリズムで保護された RESTful JSON API
  • データベースに依存せず、スケーラブルなデータストア(DynamoDB、Cassandra、MongoDB など)向けに設計
  • 全文検索(Lucene、Elasticsearch)
  • 分散オブジェクトキャッシュとローカルオブジェクトキャッシュ(Hazelcast、Caffeine)
  • マルチテナント:各アプリが独自のテーブル、インデックス、キャッシュを持ちます
  • 署名付きペイロードを使用する Webhook
  • Spring Security に基づく柔軟なセキュリティ(LDAP、SAML、ソーシャルログイン、CSRF 保護など)
  • JSON Web Token(JWT)によるステートレスなクライアント認証
  • クライアントアクセス制御のための、シンプルで効果的なリソース権限
  • JSR-303 と Hibernate Validator に基づく堅牢な制約検証メカニズム
  • オブジェクトごとに永続化、インデックス、キャッシュ操作を制御
  • 楽観的ロックとトランザクションをサポート(各 DAO がネイティブに実装)
  • 高度なシリアライズおよびデシリアライズ機能(Jackson)
  • 監視と診断のための包括的なメトリクス(Dropwizard)
  • Google Guice を活用したモジュール設計とプラグインのサポート
  • 言語パックの翻訳や通貨の処理に使える I18n ユーティリティ
  • Jetty を組み込んだスタンドアロンの実行可能 JAR
  • multipart/form-data リクエストを受け付ける公開エンドポイントによる HTML フォーム処理
  • MCP サーバー:AI エージェントがバックエンドとやり取りできるようにします
  • Para Web Console - 管理ユーザーインターフェース
アーキテクチャ
+----------------------------------------------------------+
|                  ____  ___ _ ____ ___ _                  |
|                 / __ \/ __` / ___/ __` /                 |
|                / /_/ / /_/ / /  / /_/ /                  |
|               / .___/\__,_/_/   \__,_/     +-------------+
|              /_/                           | Persistence |
+-------------------+  +-----------------+   +-------------+
|      REST API     |  |     Search      |---|    Cache    |
+---------+---------+--+--------+--------+---+------+------+
          |                     |                   |
+---------+---------+  +--------+--------+   +------+------+
|  Signed Requests  |  |  Search Index   |   |  Data Store |
|  and JWT Tokens   |  |      (Any)      |   |    (Any)    |
+----+---------^----+  +-----------------+   +-------------+
     |         |
+----v---------+-------------------------------------------+
| Clients: JavaScript, PHP, Java, C#, Android, iOS, et al. |
+----------------------------------------------------------+

ドキュメント

ドキュメントを読む

ブログ

ブログで Para について詳しく読む

ホスティング

paraio.com では、ホスティングとプレミアムサポートを提供しており、無料の開発者アカウントで Para をオンラインでお試しいただけます。ウェブコンソールでは、ユーザーやオブジェクトの閲覧・管理、バックアップ、権限の編集を数クリックで行えます。プレミアムアカウントにアップグレードすると、プロジェクトの規模を数秒で拡大・縮小したり、複数のアプリを管理したりできます。

その他のホスティングプロバイダー

Hostinger にデプロイ

クイックスタート

  1. 最新の実行可能 JAR をダウンロードします
  2. JAR パッケージと同じディレクトリに、設定ファイル application.conf を作成します。
  3. java -jar -Dconfig.file=./application.conf para-*.jar で Para を起動します。
  4. npm install -g para-cli で Para CLI をインストールします。
  5. プロジェクト用の専用アプリを新規作成し、アクセスキーを保存します。
# run setup and set endpoint to either 'http://localhost:8080' or 'https://paraio.com'
# the keys for the root app are inside application.conf
$ para-cli setup
$ para-cli new-app "myapp" --name "My App"

または、Para Web Console を使ってデータを管理するか、以下の API クライアントのいずれかを使って Para をプロジェクトに直接統合できます。

Docker

Para のタグ付き Docker イメージは、Docker Hub の erudikaltd/para にあります。 :latest タグは壊れていたり不安定だったりする可能性があるため、:1.51.0 や :latest_stable などのリリースイメージのみをプルすることを強くおすすめします。 まず、application.conf ファイルと data フォルダーを作成し、Para コンテナーを起動します。

$ touch application.conf && mkdir data
$ docker run -ti -p 8080:8080 --rm -v $(pwd)/data:/para/data \
  -v $(pwd)/application.conf:/para/application.conf \
  -e JAVA_OPTS="-Dconfig.file=/para/application.conf" erudikaltd/para:latest_stable

環境変数

JAVA_OPTS - Java システムプロパティ。デフォルトは -Dloader.path=lib です。

プラグイン

docker compose を使うと、必要なすべてのプラグインと JDBC ドライバーを含むカスタム Para コンテナーを作成できます。 以下は、para-dao-sql、para-search-lucene、およびデータベースとして PostgreSQL を使って Para をビルドする例です。

  1. まず、次のようなマルチステージビルドを行う Dockerfile-plugins を新規作成します。
  • Dockerfile-plugins の内容を表示
    ARG PARA_VERSION="0.0.0"
    ARG SQL_DAO_VERSION="0.0.0"
    FROM erudikaltd/para:v${PARA_VERSION} AS base
    FROM erudikaltd/para-dao-sql:${SQL_DAO_VERSION} AS dao
    FROM erudikaltd/para-search-lucene:${SEARCH_VERSION} AS search
    FROM base AS final
    COPY --from=dao /para/lib/*.jar /para/lib
    COPY --from=search /para/lib/*.jar /para/lib
    
    # EXAMPLE: Add a PostgreSQL JDBC Driver
    ARG PG_JDBC_VERSION="0.0.0"
    ADD https://jdbc.postgresql.org/download/postgresql-${PG_JDBC_VERSION}.jar /para/lib/
    
  1. 次に、docker-compose.yml ファイルを作成します。
  • docker-compose.yml の内容を表示
    services:
       para:
         depends_on:
           - db
         build:
           context: .
           dockerfile: Dockerfile
           args:
             PARA_VERSION: "1.51.0"
             SQL_DAO_VERSION: "1.49.1"
             PG_JDBC_VERSION: "42.7.7"
         image: para-with-plugins
         pull_policy: never
         ports:
           - "8080:8080"
         volumes:
           - type: volume
             source: paraData
             target: /para/data
           - type: volume
             source: paraLib
             target: /para/lib
           - type: bind
             source: ./para-application.conf
             target: /para/application.conf
         restart: always
         environment:
           - JAVA_OPTS=-Dconfig.file=/para/application.conf -Dloader.path=/para/lib
    
       db:
         image: postgres:latest
         ports:
           - "5432:5432"
         volumes:
           - type: volume
             source: postgresData
             target: /var/lib/postgresql/data
         restart: always
         environment:
           - POSTGRES_PASSWORD=mysecretpassword
           - PGDATA=/var/lib/postgresql/data
    volumes:
      paraData:
      paraLib:
      postgresData:
    
  1. さらに、Para の設定ファイル para-application.conf を作成します。
  • para-application.conf の内容を表示
    para.env = "production"
    para.dao = "SqlDAO"
    para.sql.driver = "org.postgresql.Driver"
    para.sql.url = "postgresql://db:5432/para"
    para.sql.user = "postgres"
    para.sql.password = "mysecretpassword"
    
  1. 最後に、docker compose build para && docker compose up を実行します。

Kubernetes

helm/ フォルダーに Helm チャートがあります。まず helm/para/values.yaml を編集してから、単一のコマンドで Para を Kubernetes にデプロイできます。

cd helm; helm install para ./para

詳しくは、クイックスタートガイド helm/README.md をご覧ください。

Para のビルド

Para は JDK 8 以降でコンパイルできます。

コンパイルには Maven が必要です。準備ができたら、リポジトリをクローンしてビルドします。

$ git clone https://github.com/erudika/para.git && cd para
$ mvn install -DskipTests=true

実行可能な「fat-jar」を生成するには $ mvn package を実行します。生成先は ./para-server/target/para-x.y.z-SNAPSHOT.jar です。 合計で 2 つの JAR ファイルが生成されます。fat JAR のほうが少し大きくなります。

Para のネイティブイメージをビルドするには、次を実行します。

$ cd para-server && mvn -Pnative package

ネイティブイメージはプラットフォームに依存するため、たとえば x86-64 でビルドしたイメージは aarch64 では実行できないことに注意してください。

開発用に Para のローカルインスタンスを実行するには、次を使います。

$ mvn -Dconfig.file=./application.conf spring-boot:run

スタンドアロンサーバー

実行可能な JAR ファイルをダウンロードして実行するか、Para リポジトリをクローンした後にソースからビルドします。 「uber JAR」(fat JAR)ファイルをビルドするには、次の Maven プロファイルを有効にする必要があります。

mvn -Pfatjar,sql,lucene -DskipTests=true package

最後に、Para サーバーを実行します。

java -jar para-X.Y.Z.jar

その後、Para Web Console console.paraio.org でオブジェクトを閲覧できます。 API エンドポイントをローカルサーバーに変更し、アクセスキーを接続してください。 管理インターフェースはクライアント側のみで動作するため、シークレットキーがネットワーク経由で送信されることはありません。代わりに、JWT アクセストークンがローカルで生成され、リクエストごとにサーバーへ送信されます。

JAR をダウンロード

Maven の依存関係

Para を依存関係として追加することで、プロジェクトに統合することもできます。Para は Maven Central で公開されています。 pom.xml に追加する Maven の設定は次のとおりです。

<dependency>
  <groupId>com.erudika</groupId>
  <artifactId>para-server</artifactId>
  <version>{see_green_version_badge_above}</version>
</dependency>

Para に接続する軽量なクライアント専用アプリケーションをビルドする場合は、クライアントモジュールのみを含めます。

<dependency>
  <groupId>com.erudika</groupId>
  <artifactId>para-client</artifactId>
  <version>{see_green_version_badge_above}</version>
</dependency>

コマンドラインツール

$ npm install -g para-cli

API クライアント

これらのクライアントライブラリを使って、Para をプロジェクトにすばやく統合できます。

データベース統合

次の DAO 実装を使って、さまざまなデータベースに接続できます。

検索エンジン統合

Search インターフェースは、次の実装によって実装されています。

キャッシュ統合

Cache インターフェースは、次の実装によって実装されています。

  • Caffeine:オブジェクトをローカルにキャッシュします(para-server に含まれています)
  • Hazelcast:para-cache-hazelcast(分散型)

キューの実装

Queue インターフェースは、次の実装によって実装されています。

  • Amazon SQS:para-queue-sqs、Amazon SQS 用プラグイン
  • LocalQueue:単一ホストでのデプロイとローカル開発向け

ファイルストレージの実装

FileStore インターフェースは、次の実装によって実装されています。

  • Amazon S3:para-storage-s3、Amazon S3 用プラグイン
  • LocalFileStore:ローカルファイルシステムへのファイル保存用です。

メール送信機能の実装

Emailer インターフェースは、次の実装によって実装されています。

  • AWSEmailer:para-email-ses、Amazon SES 用プラグイン
  • JavaMailEmailer - トランザクションメールを処理するデフォルトの JavaMail 実装

Para を使用しているプロジェクト

  • Scoold - オープンソースの Stack Overflow クローン
  • ParaIO.com - Para のマネージドホスティング
  • Erudika.com - 当社ウェブサイトの検索バーと問い合わせフォームで Para を使用しています
  • Angular デモアプリ - Angular のサンプルプロジェクト
  • React デモアプリ - React のサンプルプロジェクト

ウィッシュリスト/ロードマップ

  • Para 2.0 - Java 25 以降のみ、ネイティブイメージ
  • より使いやすい管理 UI

サポート

Issue を送信して、こちらでサポートを受けられます。また、Gitter チャットルームでもサポートを受けられます。 有償/優先サポートもご利用いただけます。

ヘルプを利用する

コントリビュート

  1. このリポジトリをフォークし、フォークしたリポジトリを自分のマシンにクローンします
  2. ブランチを作成します(git checkout -b my-new-feature)
  3. 新機能を実装するかバグを修正し、テストを追加します
  4. 変更をコミットします(git commit -am 'Added a new feature')
  5. GitHub の自分のフォークにブランチをプッシュします(git push origin my-new-feature)
  6. フォークから新しいプルリクエストを作成します

このプロジェクトのコードスタイルに沿うようにしてください。コードを確認するには、スタイルチェッカーにかけてください。

mvn validate

詳しくは、CONTRIBUTING.md をご覧ください。

ライセンス

Apache 2.0

コメント

MCP は初めてですか?

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

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