Appearance
Custom Servers
The integration catalog covers 25 popular services, but your team may use tools that are not listed. Pencel lets you connect any MCP-compatible server — whether it is a custom script you wrote, a community server from the MCP registry, or a private endpoint your company hosts.
Transport Types
Custom servers connect using one of three transport types. Pick the one that matches how your server runs.
Stdio: Local Process
Use this when your MCP server is a script or program that runs on your machine. Pencel starts the process, sends commands over standard input, and reads responses from standard output.
When to use:
- Custom Python or Node.js scripts.
- Open-source MCP servers you downloaded.
- Internal tools that run as command-line programs.
How to add:
- Open Settings > Connections.
- Click Add Connection and select Custom Server.
- Choose Stdio as the transport.
- Fill in the configuration:
- Name: A descriptive name (e.g., "Internal CRM Tool").
- Command: The program to run (e.g.,
python,node,npx,uvx). - Arguments: Command-line arguments (e.g.,
/path/to/server.pyormy-mcp-server). - Environment variables (optional): Key-value pairs passed to the process.
- Click Connect.
Example configuration:
| Field | Value |
|---|---|
| Name | Custom CRM Server |
| Command | python |
| Arguments | /Users/me/scripts/crm-mcp-server.py |
| Environment | CRM_API_KEY=abc123 |
TIP
For Node.js servers distributed as npm packages, use npx as the command and the package name as the argument. For Python servers, use uvx or python with the script path.
HTTP: Remote Endpoint
Use this when your MCP server is hosted at a URL — either on your company's network or in the cloud. Pencel sends HTTP requests to the endpoint.
When to use:
- Self-hosted MCP servers running on your infrastructure.
- Internal APIs wrapped in an MCP server.
- Cloud-hosted MCP endpoints.
How to add:
- Open Settings > Connections.
- Click Add Connection and select Custom Server.
- Choose HTTP as the transport.
- Fill in the configuration:
- Name: A descriptive name (e.g., "Internal Analytics API").
- URL: The full endpoint URL (e.g.,
https://mcp.internal.company.com/v1). - Headers (optional): Custom HTTP headers for authentication.
- Click Connect.
Example configuration:
| Field | Value |
|---|---|
| Name | Internal Analytics |
| URL | https://mcp.internal.company.com/v1 |
| Headers | Authorization: Bearer tok_abc123 |
WARNING
HTTP connections send data over the network. Make sure the endpoint uses HTTPS (not HTTP) and that you trust the server operator. Your agent's requests and the server's responses travel over this connection.
Remote: OAuth-Based
Use this when the MCP server uses OAuth for authentication. Pencel handles the OAuth flow — you just sign in through your browser.
When to use:
- SaaS vendors that offer MCP endpoints with OAuth.
- Company-hosted services that use OAuth for access control.
How to add:
- Open Settings > Connections.
- Click Add Connection and select Custom Server.
- Choose Remote as the transport.
- Fill in the configuration:
- Name: A descriptive name.
- URL: The OAuth endpoint URL (e.g.,
https://mcp.vendor.com/mcp).
- Click Connect. Pencel opens your browser for the OAuth sign-in flow.
- Authorize access and return to Pencel.
Example configuration:
| Field | Value |
|---|---|
| Name | Vendor Platform |
| URL | https://mcp.vendor.com/mcp |
Import from Claude Desktop
If you already use Claude Desktop and have MCP servers configured there, you can import them into Pencel instead of setting each one up again.
How It Works
Claude Desktop stores its MCP server configuration in a JSON file called claude_desktop_config.json. Pencel can read this file and create connections for each server listed in it.
Step-by-Step
Locate your Claude Desktop configuration file:
- macOS:
~/Library/Application Support/Claude/claude_desktop_config.json - Windows:
%APPDATA%\Claude\claude_desktop_config.json
- macOS:
Open Settings > Connections in Pencel.
Click Import from Claude Desktop.
Pencel reads the config file and shows you a list of servers found.
Select the servers you want to import and click Import.
Each imported server appears as a new connection with the transport type and credentials carried over.
INFO
The import copies the configuration at the time of import. If you later change your Claude Desktop config, you need to re-import or manually update the connection in Pencel.
Example Config File
Here is what a claude_desktop_config.json file looks like. Pencel reads the mcpServers section:
json
{
"mcpServers": {
"filesystem": {
"command": "npx",
"args": [
"-y",
"@modelcontextprotocol/server-filesystem",
"/Users/me/workspace"
]
},
"github": {
"command": "npx",
"args": [
"-y",
"@modelcontextprotocol/server-github"
],
"env": {
"GITHUB_PERSONAL_ACCESS_TOKEN": "ghp_abc123"
}
},
"custom-crm": {
"command": "python",
"args": ["/Users/me/scripts/crm-server.py"],
"env": {
"CRM_API_KEY": "key_abc123"
}
}
}
}Each entry becomes a separate connection in Pencel, using the stdio transport.
MCP Registry
The MCP community maintains a public registry of servers at registry.modelcontextprotocol.io. You can browse it to find servers for services not in Pencel's built-in catalog.
How to Use a Registry Server
- Visit the registry and find a server that fits your needs.
- Check the trust level and read the documentation.
- Note the installation command (usually an
npxoruvxcommand) or endpoint URL. - Add it as a custom server in Pencel using the appropriate transport type.
Example: Adding a community server from the registry
You found a community MCP server for Airtable:
| Field | Value |
|---|---|
| Name | Airtable |
| Transport | Stdio |
| Command | npx |
| Arguments | -y airtable-mcp-server |
| Environment | AIRTABLE_API_KEY=pat_abc123 |
WARNING
Community servers in the registry are not reviewed by Pencel. Before connecting a community server, review its source code, check the maintainer's reputation, and understand what data it accesses. Never provide credentials to a server you do not trust.
Best Practices for Custom Servers
- Name connections clearly. Use descriptive names like "Internal CRM" or "Staging Database" instead of "Custom Server 1."
- Pin package versions. When using
npx, specify a version (e.g.,npx -y package@1.2.3) so your server does not unexpectedly update. - Use environment variables for secrets. Never put API keys directly in the command arguments. Use the environment variables field instead.
- Test before automating. After adding a custom server, run a simple chat command to verify the tools work before building workflows around them.
- Set the right activation mode. Custom servers you use rarely should be set to manual. Frequently used ones can be auto_connect or when_relevant.
- Document your custom servers. Keep a note in your workspace describing what each custom server does, what credentials it needs, and who maintains it. This helps your team if you need to reconfigure or troubleshoot later.
TIP
If you build a custom MCP server that could be useful to others, consider publishing it to the MCP registry. The community benefits from shared integrations, and you get feedback to improve your server.
