Skip to content

Commit cb2b7f9

Browse files
authored
Intercom MCP Server (#10)
1 parent fcfda0b commit cb2b7f9

File tree

121 files changed

+183917
-2
lines changed

Some content is hidden

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

121 files changed

+183917
-2
lines changed

.gitignore

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -98,7 +98,7 @@ ipython_config.py
9898
# Similar to Pipfile.lock, it is generally recommended to include uv.lock in version control.
9999
# This is especially recommended for binary packages to ensure reproducibility, and is more
100100
# commonly ignored for libraries.
101-
#uv.lock
101+
uv.lock
102102

103103
# poetry
104104
# Similar to Pipfile.lock, it is generally recommended to include poetry.lock in version control.

servers.txt

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1 +1,2 @@
1-
arcade-arcade-engine-api
1+
arcade-arcade-engine-api
2+
arcade-intercom-api
Lines changed: 18 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,18 @@
1+
files: ^.*/arcade_arcade_engine_api/.*
2+
repos:
3+
- repo: https://github.com/pre-commit/pre-commit-hooks
4+
rev: "v4.4.0"
5+
hooks:
6+
- id: check-case-conflict
7+
- id: check-merge-conflict
8+
- id: check-toml
9+
- id: check-yaml
10+
- id: end-of-file-fixer
11+
- id: trailing-whitespace
12+
13+
- repo: https://github.com/astral-sh/ruff-pre-commit
14+
rev: v0.6.7
15+
hooks:
16+
- id: ruff
17+
args: [--fix]
18+
- id: ruff-format

servers/intercom_api/.ruff.toml

Lines changed: 44 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,44 @@
1+
target-version = "py310"
2+
line-length = 100
3+
fix = true
4+
5+
[lint]
6+
select = [
7+
# flake8-2020
8+
"YTT",
9+
# flake8-bandit
10+
"S",
11+
# flake8-bugbear
12+
"B",
13+
# flake8-builtins
14+
"A",
15+
# flake8-comprehensions
16+
"C4",
17+
# flake8-debugger
18+
"T10",
19+
# flake8-simplify
20+
"SIM",
21+
# isort
22+
"I",
23+
# mccabe
24+
"C90",
25+
# pycodestyle
26+
"E", "W",
27+
# pyflakes
28+
"F",
29+
# pygrep-hooks
30+
"PGH",
31+
# pyupgrade
32+
"UP",
33+
# ruff
34+
"RUF",
35+
# tryceratops
36+
"TRY",
37+
]
38+
39+
[lint.per-file-ignores]
40+
"**/tests/*" = ["S101"]
41+
42+
[format]
43+
preview = true
44+
skip-magic-trailing-comma = false

servers/intercom_api/LICENSE

Lines changed: 21 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,21 @@
1+
MIT License
2+
3+
Copyright (c) 2025, Arcade AI
4+
5+
Permission is hereby granted, free of charge, to any person obtaining a copy
6+
of this software and associated documentation files (the "Software"), to deal
7+
in the Software without restriction, including without limitation the rights
8+
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
9+
copies of the Software, and to permit persons to whom the Software is
10+
furnished to do so, subject to the following conditions:
11+
12+
The above copyright notice and this permission notice shall be included in all
13+
copies or substantial portions of the Software.
14+
15+
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
16+
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
17+
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
18+
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
19+
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
20+
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
21+
SOFTWARE.

servers/intercom_api/Makefile

Lines changed: 54 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,54 @@
1+
.PHONY: help
2+
3+
help:
4+
@echo "🛠️ github Commands:\n"
5+
@grep -E '^[a-zA-Z_-]+:.*?## .*$$' $(MAKEFILE_LIST) | sort | awk 'BEGIN {FS = ":.*?## "}; {printf "\033[36m%-30s\033[0m %s\n", $$1, $$2}'
6+
7+
.PHONY: install
8+
install: ## Install the uv environment and install all packages with dependencies
9+
@echo "🚀 Creating virtual environment and installing all packages using uv"
10+
@uv sync --active --all-extras --no-sources
11+
@if [ -f .pre-commit-config.yaml ]; then uv run --no-sources pre-commit install; fi
12+
@echo "✅ All packages and dependencies installed via uv"
13+
14+
.PHONY: install-local
15+
install-local: ## Install the uv environment and install all packages with dependencies with local Arcade sources
16+
@echo "🚀 Creating virtual environment and installing all packages using uv"
17+
@uv sync --active --all-extras
18+
@if [ -f .pre-commit-config.yaml ]; then uv run pre-commit install; fi
19+
@echo "✅ All packages and dependencies installed via uv"
20+
.PHONY: build
21+
build: clean-build ## Build wheel file using poetry
22+
@echo "🚀 Creating wheel file"
23+
uv build
24+
25+
.PHONY: clean-build
26+
clean-build: ## clean build artifacts
27+
@echo "🗑️ Cleaning dist directory"
28+
rm -rf dist
29+
30+
.PHONY: test
31+
test: ## Test the code with pytest
32+
@echo "🚀 Testing code: Running pytest"
33+
@uv run --no-sources pytest -W ignore -v --cov --cov-config=pyproject.toml --cov-report=xml
34+
35+
.PHONY: coverage
36+
coverage: ## Generate coverage report
37+
@echo "coverage report"
38+
@uv run --no-sources coverage report
39+
@echo "Generating coverage report"
40+
@uv run --no-sources coverage html
41+
42+
.PHONY: bump-version
43+
bump-version: ## Bump the version in the pyproject.toml file by a patch version
44+
@echo "🚀 Bumping version in pyproject.toml"
45+
uv version --no-sources --bump patch
46+
47+
.PHONY: check
48+
check: ## Run code quality tools.
49+
@if [ -f .pre-commit-config.yaml ]; then\
50+
echo "🚀 Linting code: Running pre-commit";\
51+
uv run --no-sources pre-commit run -a;\
52+
fi
53+
@echo "🚀 Static type checking: Running mypy"
54+
@uv run --no-sources mypy --config-file=pyproject.toml

servers/intercom_api/README.md

Lines changed: 26 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,26 @@
1+
<div style="display: flex; justify-content: center; align-items: center;">
2+
<img
3+
src="https://docs.arcade.dev/images/logo/arcade-logo.png"
4+
style="width: 250px;"
5+
>
6+
</div>
7+
8+
<div style="display: flex; justify-content: center; align-items: center; margin-bottom: 8px;">
9+
<img src="https://img.shields.io/badge/python-3.10+-blue.svg" alt="Python version" style="margin: 0 2px;">
10+
<img src="https://img.shields.io/badge/license-MIT-green.svg" alt="License" style="margin: 0 2px;">
11+
<img src="https://img.shields.io/pypi/v/intercom_api" alt="PyPI version" style="margin: 0 2px;">
12+
</div>
13+
14+
15+
<br>
16+
<br>
17+
18+
# Arcade intercom_api Toolkit
19+
Tools that enable LLMs to interact directly with the Intercom API
20+
## Features
21+
22+
- The intercom_api toolkit does not have any features yet.
23+
24+
## Development
25+
26+
Read the docs on how to create a toolkit [here](https://docs.arcade.dev/home/build-tools/create-a-toolkit)

servers/intercom_api/arcade_intercom_api/__init__.py

Whitespace-only changes.

0 commit comments

Comments
 (0)