Skip to content
Closed
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
25 commits
Select commit Hold shift + click to select a range
266c3b3
Remove unused variable `toolResults`
jrgtt Apr 2, 2025
4e81e6e
Add weather-server-rust
amikai Aug 2, 2025
7886d3c
replace claude-3-5-sonnet-20241022 with claude-3-7-sonnet-latest
idoco Aug 23, 2025
3bc819f
Weather server missing main function
datashaman Sep 4, 2025
dede2bc
change model to claude-sonnet-4-0
idoco Sep 25, 2025
64ba6ae
Merge pull request #48 from datashaman/patch-1
dsp-ant Sep 25, 2025
56b7477
Merge pull request #45 from idoco/fix-deprecated-model
dsp-ant Sep 25, 2025
6d5cb10
Merge pull request #30 from jrgtt/main
dsp-ant Sep 26, 2025
f041968
Add .env. to the global gitignore, as well as .env.example to python …
Sep 29, 2025
fb55618
Refactor from match to if-else
amikai Oct 4, 2025
99e2ad9
Update claude sonnet to 4.5
YichiZ Oct 6, 2025
9929168
Update sonnet version in typescript folder
YichiZ Oct 6, 2025
a157ccf
"Claude PR Assistant workflow"
dsp-ant Oct 7, 2025
ff6163b
"Claude Code Review workflow"
dsp-ant Oct 7, 2025
0ec9bc6
Merge pull request #54 from modelcontextprotocol/add-claude-github-ac…
dsp-ant Oct 7, 2025
a9e5cf7
Remove automatic Claude code review workflow
dsp-ant Oct 7, 2025
977b352
Merge branch 'main' into weather-server-rust
dsp-ant Oct 7, 2025
604a3c9
Restrict @claude mentions to steering-committee team members
dsp-ant Oct 7, 2025
feaf370
Support subteam membership for @claude access
dsp-ant Oct 7, 2025
dd0cec3
Simplify @claude access control to check repository permissions
dsp-ant Oct 7, 2025
58ae7ac
Merge pull request #43 from amikai/weather-server-rust
dsp-ant Oct 7, 2025
1c738b3
Merge branch 'main' into main
dsp-ant Oct 7, 2025
0412557
Merge pull request #50 from a-akimov/main
dsp-ant Oct 7, 2025
e0c5614
Merge pull request #53 from YichiZ/update-claude
dsp-ant Oct 7, 2025
322a0a0
Create tools#tool-names
s854577 Nov 8, 2025
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
72 changes: 72 additions & 0 deletions .github/workflows/claude.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,72 @@
name: Claude Code

on:
issue_comment:
types: [created]
pull_request_review_comment:
types: [created]
issues:
types: [opened, assigned]
pull_request_review:
types: [submitted]

jobs:
claude:
if: |
(github.event_name == 'issue_comment' && contains(github.event.comment.body, '@claude')) ||
(github.event_name == 'pull_request_review_comment' && contains(github.event.comment.body, '@claude')) ||
(github.event_name == 'pull_request_review' && contains(github.event.review.body, '@claude')) ||
(github.event_name == 'issues' && (contains(github.event.issue.body, '@claude') || contains(github.event.issue.title, '@claude')))
runs-on: ubuntu-latest
permissions:
contents: read
pull-requests: read
issues: read
id-token: write
actions: read # Required for Claude to read CI results on PRs
steps:
- name: Check repository permissions
run: |
# Check if user has at least triage rights on the repository
PERMISSION=$(gh api "repos/${{ github.repository }}/collaborators/${{ github.actor }}/permission" -q '.permission' 2>/dev/null)

case "$PERMISSION" in
admin|maintain|push|triage)
echo "✓ User has $PERMISSION rights on the repository"
exit 0
;;
pull)
echo "✗ User only has pull (read-only) rights"
exit 1
;;
*)
echo "✗ User does not have sufficient permissions"
exit 1
;;
esac
env:
GH_TOKEN: ${{ secrets.GITHUB_TOKEN }}

- name: Checkout repository
uses: actions/checkout@v4
with:
fetch-depth: 1

- name: Run Claude Code
id: claude
uses: anthropics/claude-code-action@v1
with:
anthropic_api_key: ${{ secrets.ANTHROPIC_API_KEY }}

# This is an optional setting that allows Claude to read CI results on PRs
additional_permissions: |
actions: read

# Optional: Give a custom prompt to Claude. If this is not specified, Claude will perform the instructions specified in the comment that tagged it.
# prompt: 'Update the pull request description to include a summary of changes.'

# Optional: Add claude_args to customize behavior and configuration
# See https://github.com/anthropics/claude-code-action/blob/main/docs/usage.md
# or https://docs.claude.com/en/docs/claude-code/cli-reference for available options
# claude_args: '--allowed-tools Bash(gh pr:*)'

7 changes: 7 additions & 0 deletions .gitignore
Original file line number Diff line number Diff line change
Expand Up @@ -12,3 +12,10 @@ wheels/

# Virtual environments
.venv

# Environment variables file
.env

# Rust-generated files
debug
target
1 change: 1 addition & 0 deletions mcp-client-python/.env.example
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
ANTHROPIC_API_KEY=
4 changes: 2 additions & 2 deletions mcp-client-python/client.py
Original file line number Diff line number Diff line change
Expand Up @@ -64,7 +64,7 @@ async def process_query(self, query: str) -> str:

# Initial Claude API call
response = self.anthropic.messages.create(
model="claude-3-5-sonnet-20241022",
model="claude-sonnet-4-5",
max_tokens=1000,
messages=messages,
tools=available_tools
Expand Down Expand Up @@ -97,7 +97,7 @@ async def process_query(self, query: str) -> str:

# Get next response from Claude
response = self.anthropic.messages.create(
model="claude-3-5-sonnet-20241022",
model="claude-sonnet-4-5",
max_tokens=1000,
messages=messages,
)
Expand Down
6 changes: 2 additions & 4 deletions mcp-client-typescript/index.ts
Original file line number Diff line number Diff line change
Expand Up @@ -92,15 +92,14 @@ class MCPClient {

// Initial Claude API call
const response = await this.anthropic.messages.create({
model: "claude-3-5-sonnet-20241022",
model: "claude-sonnet-4-5",
max_tokens: 1000,
messages,
tools: this.tools,
});

// Process response and handle tool calls
const finalText = [];
const toolResults = [];

for (const content of response.content) {
if (content.type === "text") {
Expand All @@ -114,7 +113,6 @@ class MCPClient {
name: toolName,
arguments: toolArgs,
});
toolResults.push(result);
finalText.push(
`[Calling tool ${toolName} with args ${JSON.stringify(toolArgs)}]`,
);
Expand All @@ -127,7 +125,7 @@ class MCPClient {

// Get next response from Claude
const response = await this.anthropic.messages.create({
model: "claude-3-5-sonnet-20241022",
model: "claude-sonnet-4-5",
max_tokens: 1000,
messages,
});
Expand Down
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@

7 changes: 5 additions & 2 deletions weather-server-python/weather.py
Original file line number Diff line number Diff line change
Expand Up @@ -89,6 +89,9 @@ async def get_forecast(latitude: float, longitude: float) -> str:

return "\n---\n".join(forecasts)

if __name__ == "__main__":
def main():
# Initialize and run the server
mcp.run(transport='stdio')
mcp.run(transport='stdio')

if __name__ == "__main__":
main()
Loading