Skip to content

Is Simfinity a fit?

Simfinity connects GraphQL object types to MongoDB models and generated operations. It is useful when your application has a connected domain, repeated CRUD behavior, and application rules you want to keep close to its schema.

From a type to an API
DefineGraphQLObjectTypeFields + metadata

Describe data, relationships and application behavior.

Registerconnect()Endpoint names

Choose the singular and plural names explicitly.

BuildcreateSchema()Executable GraphQL

Models, inputs and generated resolvers are ready for your server.

What you get, and what you own

Simfinity generatesYour application provides
Mongoose models from registered GraphQL typesA MongoDB deployment, credentials and indexes appropriate to the workload
Detail, list, aggregation and CRUD operationsEndpoint names and decisions about which operations to expose
Relationship inputs and resolversStorage choices, ownership checks and deletion policy
Integration points for permissions, validation and lifecycle hooksAuthentication, authorization policy and domain-specific behavior
MCP tool definitions from the schemaAllowed tools, trusted context and transport configuration

A concrete example: a series catalog

Start with a Serie, add embedded seasons, filter the catalog and expose a read tool. The Quick start includes the files and expected responses. The larger Series Sample Project shows additional relationships and application behavior.

Follow the same domain as it grows:

  1. Create and query the catalog.
  2. Choose how relationships are stored.
  3. Validate data and authorize operations.
  4. Add server-controlled query scope.
  5. Expose selected operations as MCP tools.

Architectural boundaries

  • Persistence uses MongoDB and Mongoose. A SQL-backed application needs a different persistence approach.
  • Generated mutations use transactions. A standalone MongoDB server is insufficient; use a replica set or sharded cluster.
  • Authentication belongs to your application. Query scopes restrict supported reads; write ownership checks require explicit application policy.
  • Direct Mongoose calls bypass the generated GraphQL pipelines.
  • Type registration is global to the running process. Register your types and build the schema during application startup.
  • Supporting types, custom mutations and lifecycle hooks let you adapt the generated behavior. Review the Core API when deciding where to extend it.

For requirements and version information, see compatibility and releases.

Open source. Released under the Apache 2.0 License.