1. Conduid
  2. Search
  3. para
MCP server · Search

para

The Para MCP server exposes Para's backend services over the Model Context Protocol, enabling AI assistants like Claude to interact with your Para backend for configuration management, data operations, and full-text search.

Unclaimed search
34Low

Scored 6 months ago · breakdown

About para

para is an MCP server published by Erudika in the Search category: the Para MCP server exposes Para's backend services over the Model Context Protocol, enabling AI assistants like Claude to interact with your Para backend for configuration management, data operations, and full-text search.

The repository has 574 stars and 155 forks, with the last commit 2 days ago. Recent commit activity is the strongest signal that reported issues will get attention.

Install

From source
git clone https://github.com/Erudika/para

This server has no ConduID identity, so agent calls to it are not receipted. Pin the version you install and review the source before granting it credentials.

Ask AI

✦

Ask AI about para

Powered by Claude · Grounded in docs

I know everything about para. Ask me about installation, configuration, usage, or troubleshooting.

Security checks

  • ✓README presentThe repository ships documentation.

5 checks have not been run yet.

README

Logo

A scalable, multitenant backend for the cloud.

Docker pulls Maven Central Version

Para is a scalable, multitenant backend server/framework for object persistence and retrieval. It helps you build and prototype applications faster by taking care of backend operations. It can be a part of your JVM-based application or it can be deployed as standalone, multitenant API server with multiple applications and clients connecting to it.

The name "pára" means "steam" in Bulgarian. And just like steam is used to power stuff, you can use Para to power your mobile or web application backend.

See how Para compares to other open source backend frameworks.

This project is fully funded and supported by Erudika - an independent, bootstrapped company.

Features

  • RESTful JSON API secured with Amazon's Signature V4 algorithm
  • Database-agnostic, designed for scalable data stores (DynamoDB, Cassandra, MongoDB, etc.)
  • Full-text search (Lucene, Elasticsearch)
  • Distributed and local object cache (Hazelcast, Caffeine)
  • Multitenancy - each app has its own table, index and cache
  • Webhooks with signed payloads
  • Flexible security based on Spring Security (LDAP, SAML, social login, CSRF protection, etc.)
  • Stateless client authentication with JSON Web Tokens (JWT)
  • Simple but effective resource permissions for client access control
  • Robust constraint validation mechanism based on JSR-303 and Hibernate Validator
  • Per-object control of persistence, index and cache operations
  • Support for optimistic locking and transactions (implemented by each DAO natively)
  • Advanced serialization and deserialization capabilities (Jackson)
  • Full metrics for monitoring and diagnostics (Dropwizard)
  • Modular design powered by Google Guice and support for plugins
  • I18n utilities for translating language packs and working with currencies
  • Standalone executable JAR with embedded Jetty
  • HTML form handling with public endpoint accepting multipart/form-data requests
  • MCP server - allows AI agents to interact with your backend
  • Para Web Console - admin user interface

Architecture

Documentation

Read the Docs

Blog

Read more about Para on our blog

Hosting

We offer hosting and premium support at paraio.com where you can try Para online with a free developer account. Browse and manage your users and objects, do backups and edit permissions with a few clicks in the web console. By upgrading to a premium account you will be able to scale you projects up and down in seconds and manage multiple apps.

Quick Start

  1. Download the latest executable JAR
  2. Create a configuration file application.conf file in the same directory as the JAR package.
  3. Start Para with java -jar -Dconfig.file=./application.conf para-*.jar
  4. Install Para CLI with npm install -g para-cli
  5. Create a new dedicated app for your project and save the access keys:
# 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"

Alternatively, you can use the Para Web Console to manage data, or integrate Para directly into your project with one of the API clients below.

Docker

Tagged Docker images for Para are located at erudikaltd/para on Docker Hub. It's highly recommended that you pull only release images like :1.51.0 or :latest_stable because the :latest tag can be broken or unstable. First, create an application.conf file and a data folder and start the Para container:

$ 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

Environment variables

JAVA_OPTS - Java system properties, defaults to -Dloader.path=lib

Plugins

You can create a custom Para container with all plugins and JDBC drivers you need by using docker compose. Below is an example build of Para, using para-dao-sql, para-search-lucene and PosgreSQL as a database.

  1. First, create a new Dockerfile-plugins which does a multi-stage build like so:
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. Then, create a docker-compose.yml file:
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. Also reate the Para configuration file 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. Finally, run docker compose build para && docker compose up

Kubernetes

There's a Helm chart inside the helm/ folder. First edit helm/para/values.yaml and then you can deploy Para to Kubernetes with a single command:

cd helm; helm install para ./para

For more info, check the quick start guide at helm/README.md.

Building Para

Para can be compiled with JDK 8+:

To compile it you'll need Maven. Once you have it, just clone and build:

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

To generate the executable "fat-jar" run $ mvn package and it will be in ./para-server/target/para-x.y.z-SNAPSHOT.jar. Two JAR files will be generated in total - the fat one is a bit bigger in size.

To build the native image of Para, run:

$ cd para-server && mvn -Pnative package

Note, that native images are platform-dependent, so an image built on x86-64 will not run on aarch64, for example.

To run a local instance of Para for development, use:

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

Standalone server

Either download the executable JAR file and run it, or build it from scratch after cloning the Para repository. To build the "uber JAR" (fat JAR) file you need to enable it with the following Maven profiles:

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

Finally, run Para server:

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

The you can browse your objects through the Para Web Console console.paraio.org. Simply change the API endpoint to be your local server and connect your access keys. The admin interface is client-side only and your secret key is never sent over the the network. Instead, a JWT access token is generated locally and sent to the server on each request.

Download JAR

Maven dependency

You can also integrate Para with your project by adding it as a dependency. Para is hosted on Maven Central. Here's the Maven snippet to include in your pom.xml:

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

For building lightweight client-only applications connecting to Para, include only the client module:

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

Command-line tool

$ npm install -g para-cli

API clients

Use these client libraries to quickly integrate Para into your project:

Database integrations

Use these DAO implementations to connect to different databases:

Search engine integrations

The Search interface is implemented by:

Cache integrations

The Cache interface is implemented by:

  • Caffeine: objects are cached locally (included in para-server)
  • Hazelcast: para-cache-hazelcast (distributed)

Queue implementations

The Queue interface is implemented by:

  • Amazon SQS: para-queue-sqs plugin for Amazon SQS
  • LocalQueue for single-host deployments and local development

File storage implementations

The FileStore interface is implemented by:

  • Amazon S3: para-storage-s3 plugin for Amazon S3
  • LocalFileStore: for storing files to the local file system.

Emailer implementations

The Emailer interface is implemented by:

  • AWSEmailer: para-email-ses plugin for Amazon SES
  • JavaMailEmailer - the default JavaMail implementation for handling transaction emails

Projects using Para

Wishlist / Roadmap

  • Para 2.0 - Java 25+ only, native image
  • Better admin UI

Support

You can get support here by submitting an issue. Also you can head over to the Gitter chat room for help. Paid/priority support is also available.

Getting help

  • Have a question? - ask it on Gitter
  • Found a bug? - submit a bug report here
  • Ask a question on Stack Overflow using the para tag
  • For questions related to Scoold, use the para tag on Stack Overflow

Contributing

  1. Fork this repository and clone the fork to your machine
  2. Create a branch (git checkout -b my-new-feature)
  3. Implement a new feature or fix a bug and add some tests
  4. Commit your changes (git commit -am 'Added a new feature')
  5. Push the branch to your fork on GitHub (git push origin my-new-feature)
  6. Create new Pull Request from your fork

Please try to respect the code style of this project. To check your code, run it through the style checker:

mvn validate

For more information see CONTRIBUTING.md

License

Apache 2.0

README copy captured when this server was indexed; it may lag the repository. The original is authoritative.

Questions

About para

How do I install para?

No package has been published for this server, so install it from source: clone the repository and follow its README.

Is para safe to use with an AI agent?

Its trust score is 34 out of 100 (low). It passes 1 of the 1 static security checks run so far. It has no ConduID identity yet, so agent calls to it are not receipted.

Is para still maintained?

Yes — the last commit was 2 days ago. The repository has 574 stars and 155 forks.