npm package: @swiftmcp/sdk
Description: The SwiftMCP SaaS API provides comprehensive access to the MCP-native marketplace platform.  This API enables AI agents and providers to participate in the marketplace, manage capabilities,  track usage, and handle billing through standardized REST endpoi
Latest version: 1.1.0

# @swiftmcp/sdk

JavaScript/Node.js SDK for SwiftMCP API

## Installation

```bash
npm install @swiftmcp/sdk
# or
yarn add @swiftmcp/sdk
```

## Quick Start

### JavaScript (CommonJS)
```javascript
const SwiftMCP = require('@swiftmcp/sdk');

const client = new SwiftMCP.ApiClient();
client.authentications['BearerAuth'].apiKey = 'your-api-key';

const userApi = new SwiftMCP.UserManagementApi(client);

// Register a new user
userApi.usersRegisterPost({
  email: 'user@example.com',
  password: 'securePassword123!'
}).then(result => {
  console.log('User registered:', result);
}).catch(error => {
  console.error('Error:', error);
});
```

### JavaScript (ES Modules)
```javascript
import SwiftMCP from '@swiftmcp/sdk';

const client = new SwiftMCP.ApiClient();
client.authentications['BearerAuth'].apiKey = 'your-api-key';

const userApi = new SwiftMCP.UserManagementApi(client);

// Register a new user
const result = await userApi.usersRegisterPost({
  email: 'user@example.com',
  password: 'securePassword123!'
});
console.log('User registered:', result);
```

### TypeScript
```typescript
import SwiftMCP, { User, ApiKey, MCPResponse } from '@swiftmcp/sdk';

const client = new SwiftMCP.ApiClient();
client.authentications['BearerAuth'].apiKey = 'your-api-key';

const userApi = new SwiftMCP.UserManagementApi(client);

// Register a new user with full type safety
try {
  const result: User = await userApi.usersRegisterPost({
    email: 'user@example.com',
    password: 'securePassword123!'
  });
  console.log('User registered:', result.id);
} catch (error) {
  console.error('Error:', error);
}

// Create API key with types
const apiKeyApi = new SwiftMCP.APIKeysApi(client);
const newApiKey: ApiKey = await apiKeyApi.usersApiKeysPost({
  name: 'My API Key',
  roles: ['user']
});
```

## Authentication

All API requests require authentication using an API key. You can create API keys through the SwiftMCP dashboard or using the API.

### Setting up Authentication

### JavaScript
```javascript
const client = new SwiftMCP.ApiClient();
client.authentications['BearerAuth'].apiKey = process.env.SWIFTMCP_API_KEY;
```

### TypeScript
```typescript
import SwiftMCP from '@swiftmcp/sdk';

const client = new SwiftMCP.ApiClient();
client.authentications['BearerAuth'].apiKey = process.env.SWIFTMCP_API_KEY!;

// Type-safe configuration
interface ClientConfig {
  apiKey: string;
  baseUrl?: string;
}

function createClient(config: ClientConfig): SwiftMCP.ApiClient {
  const client = new SwiftMCP.ApiClient();
  client.authentications['BearerAuth'].apiKey = config.apiKey;
  return client;
}
```

## Error Handling

### JavaScript
```javascript
try {
  const result = await userApi.usersRegisterPost(userData);
  console.log(result);
} catch (error) {
  if (error.response) {
    console.error('API Error:', error.response.status, error.response.data);
  } else {
    console.error('Network Error:', error.message);
  }
}
```

### TypeScript
```typescript
import SwiftMCP, { User, ApiError } from '@swiftmcp/sdk';

// Type-safe error handling
interface UserRegistrationData {
  email: string;
  password: string;
}

async function registerUser(userData: UserRegistrationData): Promise<User | null> {
  try {
    const result: User = await userApi.usersRegisterPost(userData);
    console.log('User registered successfully:', result.id);
    return result;
  } catch (error: any) {
    // Type-safe error handling
    if (error.response) {
      const apiError: ApiError = {
        status: error.response.status,
        message: error.response.data?.message || 'API Error',
        response: error.response
      };
      console.error('API Error:', apiError.status, apiError.message);
    } else {
      console.error('Network Error:', error.message);
    }
    return null;
  }
}
```

## Rate Limiting

The SwiftMCP API has rate limits. The SDK automatically handles rate limiting with exponential backoff.

## Support

- **Documentation**: https://docs.swiftmcp.com
- **API Reference**: https://api.swiftmcp.com/docs
- **Support**: support@swiftmcp.com
- **GitHub**: https://github.com/swiftmcp/swiftmcp-saas

## License

MIT License