Skip to content

simfinity.js/THE GRAPHQL FRAMEWORK

Define once.Build beyond.

Define your GraphQL types. Build on MongoDB or PostgreSQL
with generated queries, mutations, and optional MCP tools.

Compare databases

Download v3.7.0 startersOr install in your project:

npm i @simtlix/simfinity-js@3.7.0 graphql@^16.11.0 mongoose@^8.24.2

Choose once when setting up your app. v3.7.0 is available on npm.

One schema becomes a connected systemA central GraphQL schema connects to database models, GraphQL queries, mutations, relationships, and optional MCP tools. Traveling signals show the connections between the schema and each generated capability.
One definition. A connected system.
01 / FROM SCHEMA TO SYSTEMLESS REPETITION. MORE INTENTION.

A type is just
the beginning.

One Barber app. Two database backends.
Explore a shop profile and its opening hours.

MONGODB / ONE TYPE

A shop starts with a type.

Start with a shop profile, then add its embedded opening hours.

schema.js · simplified Barber types
import { GraphQLObjectType, GraphQLID,
  GraphQLString, GraphQLNonNull } from 'graphql';
import * as simfinity from '@simtlix/simfinity-js';
// Connect Mongoose before registering types (see the quick start).

const barbershopType = new GraphQLObjectType({
  name: 'barbershop',
  fields: {
    id: { type: GraphQLID },
    name: { type: new GraphQLNonNull(GraphQLString) },
    slug: { type: new GraphQLNonNull(GraphQLString) },
  },
});

simfinity.connect(null, barbershopType, 'barbershop', 'barbershops');
export const schema = simfinity.createSchema();
GraphQL response · sample data
{
  "data": {
    "barbershops": [
      {
        "id": "507f1f77bcf86cd799439011",
        "name": "Simfinity Barber Demo",
        "slug": "barber-demo"
      }
    ]
  }
}

One registration adds list, detail, aggregation and CRUD operations.

03 / A NEW WAY TO CONNECT

Your API.
Meet AI.

Your schema already knows your data.
Now your AI tools can, too. Generate typed MCP
tools from the same GraphQL API, on either database.

Explore MCP integration
schema → toolsMCP
BARBER SCHEMA + AUTHgenerateMCPTools(schema, {
schemaPlugins: [authPlugin],
selectionDepth: 0,
})
QUERY TOOL

Find approved shops with typed filters and pagination. Barber scopes decide which shops the caller can see.

Example tool arguments
{
  "slug": {
    "operator": "EQ",
    "value": "barber-demo"
  },
  "pagination": {
    "page": 1,
    "size": 10
  }
}
Explore this operation

GraphQL and MCP share Barber’s verified user context and rules.

YOUR NEXT IDEA STARTS WITH A CONNECTION.

What will you
connect next?

Build with Simfinity
OPEN SOURCEJAVASCRIPTAPACHE 2.0

Open source. Released under the Apache 2.0 License.