Skip to content
Closed
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
108 changes: 108 additions & 0 deletions ainative-ax-test/SKILL.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,108 @@
---
name: ainative-ax-test
preamble-tier: none
version: 1.0.0
description: Run an Agentic Experience (AX) test on any website — measures how well a site supports AI agents operating autonomously. Discovers APIs, tests auth flows, evaluates docs, scores across 10 dimensions. Free, no signup required.
allowed-tools: [Bash, Read, Write, Edit, WebFetch, Agent]
---

# AX Test — Agentic Experience Audit

Test how well any website supports AI agents operating autonomously — discovering services, creating accounts, provisioning resources, using APIs, and consuming documentation.

Unlike a UX audit (human experience), an AX test evaluates from the perspective of a software agent with no browser, no GUI, and no human in the loop.

## Usage

```
/ainative-ax-test https://example.com # Quick mode (~60s)
/ainative-ax-test https://example.com --full # Full mode (~3-5min)
/ainative-ax-test https://example.com --compare https://competitor.com
```

## 7-Phase Test Protocol

### Phase 1: Discovery (all modes)
- Check robots.txt, llms.txt, .well-known/ai-plugin.json
- Look for MCP server declarations, OpenAPI/Swagger specs
- Check for structured data (JSON-LD, Schema.org)
- Evaluate sitemap.xml for API documentation links

### Phase 2: Authentication (all modes)
- Find signup/registration endpoints
- Test API key provisioning flow
- Check OAuth2 flows
- Measure time-to-first-API-call

### Phase 3: API Exploration (--full only)
- Parse OpenAPI specs
- Test each documented endpoint
- Check error response quality
- Evaluate rate limit communication

### Phase 4: Resource Provisioning (--full only)
- Create a project/database/resource
- Measure provisioning latency
- Check if zero-human flow is possible

### Phase 5: Data Operations (--full only)
- CRUD operations on provisioned resources
- Test batch operations
- Evaluate SDK availability

### Phase 6: Documentation Quality (--full only)
- Code examples present and runnable?
- Error codes documented?
- Authentication documented with examples?
- Quick-start guide exists?

### Phase 7: Cleanup (--full only)
- Delete created resources
- Verify cleanup completeness

## 10-Dimension Scoring

| Dimension | Weight | What It Measures |
|-----------|--------|-----------------|
| Discovery | 10% | Can an agent find the API? |
| Auth | 15% | Can an agent authenticate programmatically? |
| API Quality | 15% | REST conventions, error handling, pagination |
| Docs | 10% | Code examples, error docs, quick-start |
| Provisioning | 15% | Zero-human resource creation |
| SDK/Tools | 10% | Client libraries, MCP servers, CLI tools |
| Reliability | 10% | Uptime, consistent responses |
| Speed | 5% | API response latency |
| Standards | 5% | OpenAPI, JSON:API, MCP compliance |
| Agent Support | 5% | llms.txt, AI plugin manifest, structured data |

## Output Format

```
AX SCORE: 8.5/10

Discovery: 9/10 — OpenAPI spec found, MCP server declared
Auth: 7/10 — API key works but OAuth flow needs manual step
API Quality: 9/10 — RESTful, good errors, pagination
Docs: 8/10 — Quick-start exists, some endpoints undocumented
Provisioning: 10/10 — Zero-human database creation in <5s
SDK/Tools: 9/10 — Python, JS, CLI, MCP server available
Reliability: 8/10 — 99.9% uptime, occasional 502s
Speed: 9/10 — P95 < 200ms
Standards: 8/10 — OpenAPI 3.0, no llms.txt
Agent Support: 7/10 — No AI plugin manifest

RECOMMENDATIONS:
1. Add llms.txt to root domain
2. Add ai-plugin.json for ChatGPT/MCP discovery
3. Document the OAuth redirect flow for agents
```

## Comparison Mode

```
/ainative-ax-test https://ainative.studio --compare https://competitor.com
```

Produces a side-by-side table across all 10 dimensions.

**Created by AINative Studio** — [ainative.studio/ax-audit](https://ainative.studio/ax-audit)
126 changes: 126 additions & 0 deletions ainative-mcp-builder/SKILL.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,126 @@
---
name: ainative-mcp-builder
preamble-tier: none
version: 1.0.0
description: Build and publish MCP (Model Context Protocol) servers that expose tools to any AI agent. TypeScript or Python. Follows AINative patterns from zerodb-mcp-server (76+ tools). Covers tool design, testing, npm/PyPI publishing, and ClawHub distribution.
allowed-tools: [Bash, Read, Write, Edit, WebFetch]
---

# MCP Server Builder

Build MCP servers that expose tools to Claude Code, Cursor, ChatGPT, and any MCP-compatible agent.

## Quick Scaffold

### TypeScript

```bash
mkdir my-mcp-server && cd my-mcp-server
npm init -y
npm install @modelcontextprotocol/sdk
```

```typescript
// src/index.ts
import { Server } from '@modelcontextprotocol/sdk/server/index.js';
import { StdioServerTransport } from '@modelcontextprotocol/sdk/server/stdio.js';
import { CallToolRequestSchema, ListToolsRequestSchema } from '@modelcontextprotocol/sdk/types.js';

const server = new Server(
{ name: 'my-server', version: '1.0.0' },
{ capabilities: { tools: {} } }
);

server.setRequestHandler(ListToolsRequestSchema, async () => ({
tools: [{
name: 'hello',
description: 'Say hello',
inputSchema: {
type: 'object',
properties: { name: { type: 'string', description: 'Name to greet' } },
required: ['name']
}
}]
}));

server.setRequestHandler(CallToolRequestSchema, async (request) => {
const { name, arguments: args } = request.params;
if (name === 'hello') {
return { content: [{ type: 'text', text: `Hello, ${args.name}!` }] };
}
return { content: [{ type: 'text', text: `Unknown tool: ${name}` }], isError: true };
});

const transport = new StdioServerTransport();
await server.connect(transport);
```

### Python (FastMCP)

```bash
pip install fastmcp
```

```python
from fastmcp import FastMCP

mcp = FastMCP("my-server")

@mcp.tool()
def hello(name: str) -> str:
"""Say hello to someone"""
return f"Hello, {name}!"

if __name__ == "__main__":
mcp.run()
```

## Tool Design Guidelines

1. **One verb per tool** — `create_user` not `manage_users`
2. **Clear descriptions** — agents read these to decide which tool to use
3. **Typed schemas** — use JSON Schema with required fields and descriptions
4. **Meaningful errors** — return `isError: true` with actionable messages
5. **Idempotent where possible** — safe to retry on failure

## Configure in Claude Code

```json
// .claude/mcp.json
{
"mcpServers": {
"my-server": {
"command": "node",
"args": ["dist/index.js"],
"env": { "API_KEY": "your_key" }
}
}
}
```

## Publish to npm

```json
// package.json
{
"name": "my-mcp-server",
"bin": { "my-mcp-server": "dist/index.js" },
"files": ["dist"]
}
```

```bash
npm publish
```

Users install with: `npm install -g my-mcp-server`

## AINative MCP Servers (Reference)

| Server | Tools | Install |
|--------|-------|---------|
| `ainative-zerodb-mcp-server` | 76+ | `npm i -g ainative-zerodb-mcp-server` |
| `ainative-zerodb-memory-mcp` | 6 | `npm i -g ainative-zerodb-memory-mcp` |
| `zerodb-mcp` | 76+ | `pip install zerodb-mcp` |

**Docs:** [docs.ainative.studio/docs/mcp/overview](https://docs.ainative.studio/docs/mcp/overview)
128 changes: 128 additions & 0 deletions ainative-sdk-quickstart/SKILL.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,128 @@
---
name: ainative-sdk-quickstart
preamble-tier: none
version: 1.0.0
description: Get started with AINative SDKs in under 5 minutes. React, Next.js, Vue, Svelte, Python, and TypeScript. Chat completions, credits, auth middleware. Install and configure any AINative SDK.
allowed-tools: [Bash, Read, Write, Edit]
---

# AINative SDK Quick Start

Get AI chat completions, credits tracking, and auth in your app in under 5 minutes.

## Pick Your SDK

| SDK | Package | Framework |
|-----|---------|-----------|
| TypeScript | `@ainative/sdk` | Node.js / Browser |
| React | `@ainative/react-sdk` | React 18+ |
| Next.js | `@ainative/next-sdk` | Next.js 13+ (App Router) |
| Vue | `@ainative/vue-sdk` | Vue 3 |
| Svelte | `@ainative/svelte-sdk` | Svelte 4/5 |
| Python | `ainative-agent-sdk` | Python 3.9+ |

## React (3 minutes)

```bash
npm install @ainative/react-sdk
```

```tsx
import { AINativeProvider, useChat } from '@ainative/react-sdk';

function App() {
return (
<AINativeProvider apiKey="ak_your_key" projectId="your_project_id">
<Chat />
</AINativeProvider>
);
}

function Chat() {
const { messages, sendMessage, isLoading } = useChat();

return (
<div>
{messages.map(m => <div key={m.id}>{m.role}: {m.content}</div>)}
<button onClick={() => sendMessage('Hello!')} disabled={isLoading}>
Send
</button>
</div>
);
}
```

## Next.js (3 minutes)

```bash
npm install @ainative/next-sdk
```

```typescript
// app/api/chat/route.ts
import { createAINativeClient } from '@ainative/next-sdk';

const client = createAINativeClient({ apiKey: process.env.AINATIVE_API_KEY! });

export async function POST(req: Request) {
const { messages } = await req.json();
const stream = await client.chat.completions.create({
model: 'claude-sonnet-4-5-20250514',
messages,
stream: true,
});
return new Response(stream);
}
```

## Vue 3 (3 minutes)

```bash
npm install @ainative/vue-sdk
```

```vue
<script setup>
import { provideAINative, useChat } from '@ainative/vue-sdk';

provideAINative({ apiKey: 'ak_your_key', projectId: 'your_project_id' });
const { messages, sendMessage, isLoading } = useChat();
</script>

<template>
<div v-for="m in messages" :key="m.id">{{ m.role }}: {{ m.content }}</div>
<button @click="sendMessage('Hello!')" :disabled="isLoading">Send</button>
</template>
```

## Python Agent SDK

```bash
pip install ainative-agent-sdk
```

```python
from ainative import AINativeClient

client = AINativeClient(api_key="ak_your_key")
response = client.chat.completions.create(
model="claude-sonnet-4-5-20250514",
messages=[{"role": "user", "content": "Hello!"}]
)
print(response.choices[0].message.content)
```

## Get Your API Key

1. Go to [ainative.studio](https://ainative.studio)
2. Create account (free tier available)
3. Dashboard → API Keys → Create Key
4. Copy `ak_...` key

## Add ZeroDB Memory to Any SDK

```bash
npx zerodb-cli init # Auto-configures MCP server for your IDE
```

**Docs:** [docs.ainative.studio/docs/sdks/overview](https://docs.ainative.studio/docs/sdks/overview)
Loading