@siteline/core
v1.1.0
Published
Core tracking SDK for Siteline - Agent Analytics platform for tracking AI agents, bots, and crawlers
Readme
@siteline/core
Core Siteline tracking SDK for monitoring AI agents, bots, and crawlers across your web applications.
Features
- Track bots from OpenAI, Google, Anthropic, Perplexity, and more
- Full TypeScript support with exported types
- Works in Node.js, Edge runtimes, and browsers
- Automatic data sanitization and validation
Installation
npm install @siteline/coreQuick Start
import { Siteline } from '@siteline/core';
const siteline = new Siteline({
websiteKey: 'siteline_secret_xxxxxxxxxxxxxxxxxxxxxxxxxxxx',
});
siteline.track({
url: '/api/users',
method: 'GET',
status: 200,
duration: 125,
userAgent: request.headers['user-agent'],
ref: request.headers['referer'],
ip: request.ip,
});API Reference
Constructor
new Siteline(config: SitelineConfig)Configuration Options:
| Option | Type | Required | Description |
|--------|------|----------|---------------------------------------|
| websiteKey | string | Yes | Your Siteline website key |
| endpoint | string | No | Custom API endpoint |
| debug | boolean | No | Enable debug logging (default: false) |
track()
siteline.track(data: PageviewData)Pageview Data:
| Field | Type | Required | Description |
|-------|------|----------|-------------|
| url | string | Yes | Request URL path |
| method | string | Yes | HTTP method |
| status | number | Yes | HTTP status code |
| duration | number | Yes | Request duration in milliseconds |
| userAgent | string \| null | Yes | User-Agent header |
| ref | string \| null | Yes | Referer header |
| ip | string \| null | Yes | Client IP address |
| isMcp | boolean | No | Enable MCP ingestion mode for the event |
| mcp | MCPData | No | MCP event metadata (method, toolName, clientName, etc.) |
MCP ingestion
You can send MCP-specific payloads to the same intake endpoint by setting isMcp: true and passing an mcp object:
siteline.track({
url: 'https://example.com/mcp',
method: 'POST',
status: 200,
duration: 120,
userAgent: 'node',
ref: null,
ip: '203.0.113.1',
isMcp: true,
mcp: {
method: 'tools/call',
toolName: 'search_docs',
clientName: 'ChatGPT',
sessionId: 'session-123',
transport: 'streamable-http',
responseBytes: 2048,
argKeys: ['query', 'limit'],
},
});Framework Integrations
For framework-specific integrations with automatic tracking:
- @siteline/nextjs - Next.js middleware integration
Documentation
Support
License
MIT
