ftureX lets you turn features on or off across environments without redeploying. Install the client, grab an API key from the dashboard, and start checking flags in your code.
TipFeature flags are auto-created on first evaluation — no need to set them up in the dashboard before shipping code. They appear automatically (disabled by default) the first time your app checks them.
Installation
bash
npm install @anterprize/fturex
.NET SDK
Basic Setup (Standalone)
csharp
usingFturex;
var client =newFtureXClient(newFtureXConfiguration
{
BaseUrl ="https://your-fturex-instance.com",
AppKey ="your-api-key",
UseCache =true,
SendStatistics =true
});
// Check if a feature is enabled
if(await client.IsEnabled("new-checkout"))
{
// New checkout flow
}
// Cleanup when done
client.Dispose();
ASP.NET Core (Dependency Injection)
Register ftureX in your service container, then inject IFtureX anywhere you need it.
TipIf the API is unreachable, isEnabled returns the fallback value (default: false). Pass true as the second argument to keep critical features running during outages.
typescript
// Returns true if API is down (safe fallback for critical features)
Client applications authenticate using an API key passed in the X-API-Key header.
Method
Header
Used By
API Key
X-API-Key: <your-app-key>
SDKs, client applications
Get an API Key
Log in to the ftureX dashboard
Go to your project → Environments
Click on an environment → Apps
Click "Add App" and give it a name
Copy the generated API key
Feature Evaluation (Client Endpoint)
NoteThis is the endpoint the SDKs call internally. You can also call it directly for custom integrations.
http
POST /feature/enabled?featureName=new-checkout
X-API-Key: your-api-key
Content-Type: application/json
{
"properties": [
{ "key": "userId", "value": "user-123" },
{ "key": "role", "value": "admin" }
]
}
Response:true or false
Without context (simple toggle check):
http
POST /feature/enabled?featureName=new-checkout
X-API-Key: your-api-key
Content-Type: application/json
{}
Statistics Reporting
The SDKs automatically report usage statistics. You can also send them manually:
http
POST /api/Statistics/Report
X-API-Key: your-api-key
{
"appKey":"your-api-key",
"features":[
{
"featureName":"new-checkout",
"hitCount":150,
"enabledCount":100,
"disabledCount":50,
"lastAccessed":"2026-03-23T14:30:00Z"
}
],
"reportTimestamp":"2026-03-23T14:30:00Z"
}
Caching Behavior
Type
.NET
JS / Browser
In-memory cache
Always on (if UseCache = true)
Always on
Background refresh
Every 5 sec (configurable)
Every 5 sec (configurable)
Disk / localStorage persistence
EnableFilePersistence = true
enableLocalStoragePersistence = true
Context-specific cache TTL
5 min (configurable)
5 min (configurable)
Fallback when API is down
Returns cached value, then fallbackTo
Returns cached value, then fallbackTo
Auto Feature Discovery
When a client SDK checks a feature that doesn't exist yet in ftureX, the system can auto-create it (if enabled on the project). This means:
Developer adds isEnabled("new-feature") in code
First evaluation hits the API
ftureX auto-creates the feature (disabled by default)
Feature appears in the dashboard, ready to configure
TipNo need to create features in the dashboard first. Just start using them in code and they'll appear automatically.
OpenTelemetry
ftureX ships a first-class OpenTelemetry integration via a hook that attaches to every feature evaluation. It follows the OpenTelemetry semantic conventions for feature flags and emits both span events and metrics so you can observe flag behaviour directly in your existing observability stack.
The evaluated value ("true"/"false") — only when recordFlagValue = true
feature_flag.set.id
No
Flag set identifier — only when setId is configured
feature_flag.context.id
No
userId or tenantId from the evaluation context, when present
error.type
No
Exception type name — only on error evaluations
Configuration options
Option
Type
Default
Description
addSpanEvents / AddSpanEvents
bool
true
Add a span event to the active trace span on each evaluation
addMetrics / AddMetrics
bool
true
Emit evaluation success/error counters as OTel metrics
recordFlagValue / RecordFlagValue
bool
false
Include the evaluated flag value in span event attributes
setId / SetId
string
null
Optional identifier for the flag set or environment
TipKeep recordFlagValue set to false (the default) unless you need it — flag values can be considered sensitive in some compliance contexts, and omitting them keeps your traces leaner.
Vibe Coder Prompt
Building with an AI coding assistant? Copy this prompt, fill in the two placeholders, and paste it into your chat. The assistant reads the docs itself and picks the right SDK for whatever framework you're already using — React, Vue, .NET, or plain JS.
NoteReplace [DESCRIBE YOUR FEATURE HERE] and [your-feature-name] before sending. That's it.
prompt
Add a feature flag to control [DESCRIBE YOUR FEATURE HERE].
Flag name: "[your-feature-name]"
Read the full SDK docs here: https://fturex.com/docs
Use whatever framework this project already uses (React, Vue, .NET, vanilla JS, etc.).
Rules:
- Flag OFF → keep the existing behaviour (do not delete old code)
- Flag ON → show the new behaviour
- Handle loading state to avoid layout shift
- Feature names are kebab-case: e.g. "dark-mode", "new-checkout", "beta-dashboard"
- The flag is auto-created in the dashboard on first evaluation — no manual setup needed
MCP Server
What is an MCP Server?
MCP stands for Model Context Protocol -- it's a standard that lets AI assistants like Claude talk directly to external tools and services. The ftureX MCP server means you can manage your feature flags just by chatting with an AI agent. No dashboard, no code changes -- just tell it what you want and it happens.
Hosted Endpoint
The MCP server is live at https://mcp.fturex.com. You can connect right now without installing or self-hosting anything.
Connecting in Claude Desktop
Add the following to your Claude Desktop config file:
json
{
"mcpServers":{
"fturex":{
"type":"sse",
"url":"https://mcp.fturex.com/sse"
}
}
}
NoteOpen Claude Desktop, go to Settings → Developer → Edit Config, paste the snippet above into the config file, then restart Claude Desktop. ftureX will appear as a connected tool.
Connecting in Cursor
Add the following to your Cursor MCP config:
json
{
"mcpServers":{
"fturex":{
"type":"sse",
"url":"https://mcp.fturex.com/sse"
}
}
}
NoteIn Cursor, go to Settings → MCP → Add server, or paste the snippet above into .cursor/mcp.json in your project root, then reload Cursor.
Authentication
After connecting, the MCP server will ask for your ftureX credentials -- either your email and password, or an API token. You only need to authenticate once per session.
What You Can Do
Once connected, you can talk to your AI agent in plain English. For example:
“List all features in my production environment”
“Enable the new-checkout feature”
“Show me which features are currently disabled”
“Create a new feature flag called dark-mode”
“Toggle the beta-ui feature off”
TipAn npm package for self-hosting the MCP server is coming soon. For now, use the hosted endpoint at https://mcp.fturex.com.