Skip to content

Commit 27f9145

Browse files
authored
Fix all readme. (#397)
1 parent 5879a5b commit 27f9145

57 files changed

Lines changed: 3102 additions & 6001 deletions

File tree

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

README.md

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -41,13 +41,13 @@ server = klavis.mcp_server.create_server_instance("GMAIL", "user123")
4141
### 🐳 Using Docker (For Self-Hosting)
4242

4343
```bash
44+
# Run Gmail MCP Server with OAuth Support through Klavis AI
45+
docker run -p 5000:5000 -e KLAVIS_API_KEY=your_key \
46+
ghcr.io/klavis-ai/gmail-mcp-server:latest
47+
4448
# Run GitHub MCP Server (no OAuth support)
4549
docker run -p 5000:5000 -e AUTH_DATA='{"access_token":"ghp_your_github_token_here"}' \
4650
ghcr.io/klavis-ai/github-mcp-server:latest
47-
48-
# Run Gmail MCP Server with OAuth
49-
docker run -p 8000:5000 -e KLAVIS_API_KEY=your_key \
50-
ghcr.io/klavis-ai/gmail-mcp-server:latest
5151
```
5252

5353
### 🖥️ Cursor Configuration

mcp_servers/affinity/README.md

Lines changed: 46 additions & 147 deletions
Original file line numberDiff line numberDiff line change
@@ -1,174 +1,73 @@
11
# Affinity MCP Server
22

3-
An MCP (Model Context Protocol) server that provides integration with [Affinity CRM](https://affinity.co) through their REST API.
4-
5-
## Features
6-
7-
This MCP server provides tools to interact with Affinity CRM, including:
8-
9-
### Lists
10-
- Get all lists
11-
- Get a specific list by ID
12-
- Create new lists
13-
14-
### List Entries
15-
- Get list entries for a specific list
16-
- Get a specific list entry by ID
17-
- Create new list entries
18-
- Delete list entries
19-
20-
### Persons
21-
- Search for persons
22-
- Get a specific person by ID
23-
- Create new persons
24-
- Update existing persons
25-
- Delete persons
26-
27-
### Organizations
28-
- Search for organizations
29-
- Get a specific organization by ID
30-
- Create new organizations
31-
- Update existing organizations
32-
- Delete organizations
33-
34-
### Opportunities
35-
- Search for opportunities
36-
- Get a specific opportunity by ID
37-
- Create new opportunities
38-
- Update existing opportunities
39-
- Delete opportunities
40-
41-
### Notes
42-
- Get notes (optionally filtered by person, organization, or opportunity)
43-
- Get a specific note by ID
44-
- Create new notes
45-
- Update existing notes
46-
- Delete notes
47-
48-
### Field Values
49-
- Get field values for entities
50-
- Create new field values
51-
- Update existing field values
52-
- Delete field values
53-
54-
## Setup
55-
56-
### Prerequisites
57-
- Python 3.12 or higher
58-
- An Affinity account with API access
59-
- Affinity API key (obtain from Settings Panel in Affinity web app)
60-
61-
### Installation
62-
63-
1. Install the required dependencies:
64-
```bash
65-
pip install -r requirements.txt
66-
```
3+
A Model Context Protocol (MCP) server for Affinity CRM integration. Manage relationships, deals, and business networks using Affinity's API with OAuth support.
674

68-
2. Set up your environment variables:
69-
```bash
70-
export AFFINITY_MCP_SERVER_PORT=5000 # Optional, defaults to 5000
71-
```
5+
## 🚀 Quick Start - Run in 30 Seconds
726

73-
3. Run the server:
74-
```bash
75-
python server.py
76-
```
7+
### 🌐 Using Hosted Service (Recommended for Production)
778

78-
### Docker Setup
9+
Get instant access to Affinity with our managed infrastructure - **no setup required**:
7910

80-
1. Build the Docker image:
81-
```bash
82-
docker build -f mcp_servers/affinity/Dockerfile -t affinity-mcp-server .
83-
```
11+
**🔗 [Get Free API Key →](https://www.klavis.ai/home/api-keys)**
8412

85-
2. Run the container:
8613
```bash
87-
docker run -p 5000:5000 affinity-mcp-server
14+
pip install klavis
15+
# or
16+
npm install klavis
8817
```
8918

90-
## Authentication
19+
```python
20+
from klavis import Klavis
9121

92-
The server uses a custom authentication header with your Affinity API key. The API key should be provided in the `x-auth-token` header:
93-
94-
```
95-
x-auth-token: your_api_key_here
22+
klavis = Klavis(api_key="your-free-key")
23+
server = klavis.mcp_server.create_server_instance("AFFINITY", "user123")
9624
```
9725

98-
## API Endpoints
99-
100-
The server provides endpoints for both transport methods:
101-
102-
- `/sse` - Server-Sent Events endpoint for real-time communication
103-
- `/messages/` - SSE message handling endpoint
104-
- `/mcp` - StreamableHTTP endpoint for direct API calls
26+
### 🐳 Using Docker (For Self-Hosting)
10527

106-
## Tool Usage Examples
28+
```bash
29+
# Run Affinity MCP Server (OAuth support through Klavis AI)
30+
docker run -p 5000:5000 -e KLAVIS_API_KEY=your_free_key \
31+
ghcr.io/klavis-ai/affinity-mcp-server:latest
10732

108-
### Get All Lists
109-
```json
110-
{
111-
"name": "affinity_get_lists",
112-
"arguments": {}
113-
}
33+
# Run Affinity MCP Server (no OAuth support)
34+
docker run -p 5000:5000 -e AUTH_DATA='{"access_token":"your_affinity_api_key_here"}' \
35+
ghcr.io/klavis-ai/affinity-mcp-server:latest
11436
```
11537

116-
### Search for Persons
117-
```json
118-
{
119-
"name": "affinity_search_persons",
120-
"arguments": {
121-
"term": "john@example.com",
122-
"page_size": 10
123-
}
124-
}
125-
```
38+
**OAuth Setup:** Affinity requires OAuth authentication. Use `KLAVIS_API_KEY` from your [free API key](https://www.klavis.ai/home/api-keys) to handle the OAuth flow automatically.
12639

127-
### Create a Person
128-
```json
129-
{
130-
"name": "affinity_create_person",
131-
"arguments": {
132-
"first_name": "John",
133-
"last_name": "Doe",
134-
"emails": ["john@example.com"],
135-
"organization_ids": [123]
136-
}
137-
}
138-
```
40+
## 🛠️ Available Tools
13941

140-
### Create a Note
141-
```json
142-
{
143-
"name": "affinity_create_note",
144-
"arguments": {
145-
"content": "Meeting notes from today's call",
146-
"person_ids": [456],
147-
"type": 0
148-
}
149-
}
150-
```
42+
- **Relationship Management**: Manage people, organizations, and relationships
43+
- **Deal Tracking**: Handle opportunities and deal pipeline
44+
- **List Operations**: Create and manage custom lists and fields
45+
- **Network Analysis**: Analyze relationship networks and connections
46+
- **Data Sync**: Sync data with external systems and integrations
15147

152-
## Error Handling
48+
## 📚 Documentation & Support
15349

154-
The server provides detailed error messages for common issues:
155-
- Missing required parameters
156-
- Authentication failures
157-
- API rate limiting
158-
- Network connectivity issues
50+
| Resource | Link |
51+
|----------|------|
52+
| **📖 Documentation** | [docs.klavis.ai](https://docs.klavis.ai) |
53+
| **💬 Discord** | [Join Community](https://discord.gg/p7TuTEcssn) |
54+
| **🐛 Issues** | [GitHub Issues](https://github.com/klavis-ai/klavis/issues) |
15955

160-
## Rate Limiting
56+
## 🤝 Contributing
16157

162-
Affinity API has rate limits. The server will handle rate limit responses appropriately. See the [Affinity API documentation](https://api-docs.affinity.co/#rate-limits) for current limits.
58+
We welcome contributions! Please see our [Contributing Guide](../../CONTRIBUTING.md) for details.
16359

164-
## Contributing
60+
## 📜 License
16561

166-
1. Follow the existing code structure
167-
2. Add new tools to the appropriate files in the `tools/` directory
168-
3. Update `tools/__init__.py` to export new functions
169-
4. Add tool definitions to `server.py`
170-
5. Update this README with new functionality
62+
MIT License - see [LICENSE](../../LICENSE) for details.
17163

172-
## License
64+
---
17365

174-
This project follows the same license as the parent Klavis project.
66+
<div align="center">
67+
<p><strong>🚀 Supercharge AI Applications </strong></p>
68+
<p>
69+
<a href="https://www.klavis.ai">Get Free API Key</a> •
70+
<a href="https://docs.klavis.ai">Documentation</a> •
71+
<a href="https://discord.gg/p7TuTEcssn">Discord</a>
72+
</p>
73+
</div>

mcp_servers/airtable/README.md

Lines changed: 49 additions & 77 deletions
Original file line numberDiff line numberDiff line change
@@ -1,101 +1,73 @@
11
# Airtable MCP Server
22

3-
A Model Context Protocol (MCP) server for interacting with Airtable bases, tables, fields, and records.
3+
A Model Context Protocol (MCP) server for Airtable integration. Manage bases, tables, and records using Airtable's API with OAuth support.
44

5-
## Features
5+
## 🚀 Quick Start - Run in 30 Seconds
66

7-
- **Base Management**: Access and retrieve information about all Airtable bases
8-
- **Table Management**: Create, update, and list tables within bases
9-
- **Field Management**: Create and update table fields with various types
10-
- **Record Management**: Full CRUD operations on records with advanced filtering
11-
- **Advanced Querying**: Filter, sort, and paginate records with formula support
12-
- **Upsert Operations**: Update or insert records based on matching criteria
13-
- **Flexible Data Types**: Support for all Airtable field types and options
7+
### 🌐 Using Hosted Service (Recommended for Production)
148

15-
## Available Tools
9+
Get instant access to Airtable with our managed infrastructure - **no setup required**:
1610

17-
### Base Operations
18-
- `airtable_list_bases_info`: Get information about all accessible bases
11+
**🔗 [Get Free API Key →](https://www.klavis.ai/home/api-keys)**
1912

20-
### Table Operations
21-
- `airtable_list_tables_info`: Get information about all tables in a base
22-
- `airtable_create_table`: Create a new table with specified fields
23-
- `airtable_update_table`: Update table name and description
24-
25-
### Field Operations
26-
- `airtable_create_field`: Create a new field in a table with specific type and options
27-
- `airtable_update_field`: Update field name and description
28-
29-
### Record Operations
30-
- `airtable_list_records`: List records with advanced filtering, sorting, and pagination
31-
- `airtable_get_record`: Retrieve a specific record by ID
32-
- `airtable_create_records`: Create multiple records in a single operation
33-
- `airtable_update_records`: Update multiple records with optional upsert functionality
34-
- `airtable_delete_records`: Delete multiple records by IDs
35-
36-
## Prerequisites
37-
38-
Get this from: https://airtable.com/create/tokens with these permissions:
39-
40-
1. data.records:read
41-
See the data in records
42-
43-
2. data.records:write
44-
Create, edit, and delete records
45-
46-
3. schema.bases:read
47-
See the structure of a base, like table names or field types
13+
```bash
14+
pip install klavis
15+
# or
16+
npm install klavis
17+
```
4818

49-
4. schema.bases:write
50-
Edit the structure of a base, like adding new fields or tables
19+
```python
20+
from klavis import Klavis
5121

52-
## Configuration
22+
klavis = Klavis(api_key="your-free-key")
23+
server = klavis.mcp_server.create_server_instance("AIRTABLE", "user123")
24+
```
5325

54-
Create a `.env` file in the `mcp_servers/airtable/` directory with the following content:
26+
### 🐳 Using Docker (For Self-Hosting)
5527

5628
```bash
57-
AIRTABLE_MCP_SERVER_PORT=5000
58-
AIRTABLE_PERSONAL_ACCESS_TOKEN=your_token_here
59-
```
29+
# Run Airtable MCP Server (OAuth support through Klavis AI)
30+
docker run -p 5000:5000 -e KLAVIS_API_KEY=your_free_key \
31+
ghcr.io/klavis-ai/airtable-mcp-server:latest
6032

61-
Set the following environment variables in the .env file:
33+
# Run Airtable MCP Server (no OAuth support)
34+
docker run -p 5000:5000 -e AUTH_DATA='{"access_token":"your_airtable_api_key_here"}' \
35+
ghcr.io/klavis-ai/airtable-mcp-server:latest
36+
```
6237

63-
- `AIRTABLE_MCP_SERVER_PORT`: Port for the server (default: 5000)
64-
- `AIRTABLE_PERSONAL_ACCESS_TOKEN`: Personal access token for the Airtable API
38+
**OAuth Setup:** Airtable requires OAuth authentication. Use `KLAVIS_API_KEY` from your [free API key](https://www.klavis.ai/home/api-keys) to handle the OAuth flow automatically.
6539

66-
## Authentication
40+
## 🛠️ Available Tools
6741

68-
The server expects an Airtable Personal Access Token to be provided in the request headers. Authentication is handled at the tool level through the base request implementation.
42+
- **Record Management**: Create, read, update, and delete Airtable records
43+
- **Table Operations**: Manage table structure and schema
44+
- **Base Management**: Access and manage Airtable bases
45+
- **Field Operations**: Handle different field types and data validation
46+
- **View Management**: Work with filtered views and sorting
6947

70-
## Running the Server
48+
## 📚 Documentation & Support
7149

72-
### Direct Python
73-
```bash
74-
python server.py --port 5000 --json-response
75-
```
50+
| Resource | Link |
51+
|----------|------|
52+
| **📖 Documentation** | [docs.klavis.ai](https://docs.klavis.ai) |
53+
| **💬 Discord** | [Join Community](https://discord.gg/p7TuTEcssn) |
54+
| **🐛 Issues** | [GitHub Issues](https://github.com/klavis-ai/klavis/issues) |
7655

77-
### Docker
78-
from the root of the repository
79-
```bash
80-
docker build -t airtable-mcp-server mcp_servers/airtable
81-
docker run -p 5000:5000 --env-file mcp_servers/airtable/.env airtable-mcp-server
82-
```
56+
## 🤝 Contributing
8357

84-
### Command Line Options
85-
- `--port`: Port to listen on (default: 5000)
86-
- `--log-level`: Logging level (DEBUG, INFO, WARNING, ERROR, CRITICAL)
87-
- `--json-response`: Enable JSON responses for StreamableHTTP instead of SSE streams
58+
We welcome contributions! Please see our [Contributing Guide](../../CONTRIBUTING.md) for details.
8859

89-
## API Endpoints
60+
## 📜 License
9061

91-
- **SSE**: `GET /sse` - Server-Sent Events endpoint for MCP communication
92-
- **StreamableHTTP**: `POST /mcp` - StreamableHTTP endpoint for MCP communication
62+
MIT License - see [LICENSE](../../LICENSE) for details.
9363

94-
## Dependencies
64+
---
9565

96-
- mcp>=1.8.1
97-
- httpx
98-
- starlette
99-
- uvicorn
100-
- click
101-
- python-dotenv
66+
<div align="center">
67+
<p><strong>🚀 Supercharge AI Applications </strong></p>
68+
<p>
69+
<a href="https://www.klavis.ai">Get Free API Key</a> •
70+
<a href="https://docs.klavis.ai">Documentation</a> •
71+
<a href="https://discord.gg/p7TuTEcssn">Discord</a>
72+
</p>
73+
</div>

0 commit comments

Comments
 (0)