Skip to content

Feature/dao nft tools #31

New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Open
wants to merge 70 commits into
base: master
Choose a base branch
from
Open
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
70 commits
Select commit Hold shift + click to select a range
5e5e5ab
chore: add Coinbase SDK, development tools, and update project struct…
fakepixels Mar 6, 2025
62c5f7e
refactor: create scripts directory and delete test file
dschlabach Mar 6, 2025
f6654d8
fix: fix path in script
dschlabach Mar 6, 2025
d4a43eb
fix: fix installation path
dschlabach Mar 6, 2025
985b805
refactor: move tool definitions to separate file
dschlabach Mar 6, 2025
9185d08
refactor: move script to /scripts directory
dschlabach Mar 6, 2025
aa5ac24
feat: add `deployNft` to MCP
dschlabach Mar 6, 2025
bce285b
feat: add `deployToken` to MCP
dschlabach Mar 6, 2025
6652c53
feat: add `deployMultiToken` to MCP
dschlabach Mar 6, 2025
113e8d6
fix: update repository links
dschlabach Mar 6, 2025
90254b4
Update README.md
zhangzhongnan928 Mar 8, 2025
caea198
feat: add onramp and trading tools
dschlabach Mar 11, 2025
a658215
feat: add AgentKit
dschlabach Mar 12, 2025
0348a4f
Update README.md
dschlabach Mar 12, 2025
b9ed0e2
chore: update README.md
dschlabach Mar 12, 2025
5caeb6f
push
dschlabach Mar 12, 2025
8cdda3a
wip: generalized transaction handler
dschlabach Mar 13, 2025
a572c20
wip: add trading
dschlabach Mar 13, 2025
c08e83e
wip: enable ERC20 transfers
dschlabach Mar 13, 2025
845c87c
chore: clean up
dschlabach Mar 13, 2025
ea32d1d
wip: openrouter
dschlabach Mar 13, 2025
5132d2f
feat: add AgentKit, onramp, ERC20, and OpenRouter actions
dschlabach Mar 13, 2025
61beeaf
refactor: move morpho directory to within tools
dschlabach Mar 13, 2025
cd32af0
chore: update version
dschlabach Mar 13, 2025
24dd8a6
chore: bump version to 1.0.1
fakepixels Mar 13, 2025
f8051ca
feat: add BaseScan link to functions
dschlabach Mar 13, 2025
f305f89
feat: add Morpho integration, contract interaction tools, and onramp …
fakepixels Mar 13, 2025
5f2fb3d
docs: update README.md and other docs
dschlabach Mar 13, 2025
09fb444
chore: bump versions
dschlabach Mar 13, 2025
fbe29f2
Merge remote-tracking branch 'refs/remotes/origin/master'
dschlabach Mar 13, 2025
583a007
chore: update mcp_config.json and README.md to include Coinbase Proje…
fakepixels Mar 13, 2025
ce7b203
docs: streamline README.md by consolidating Coinbase Project ID and O…
fakepixels Mar 13, 2025
7396c90
docs: add OpenRouter integration image to README.md and format API ke…
fakepixels Mar 13, 2025
b98abb1
docs: add OpenRouter integration image to README.md and format API keys
dschlabach Mar 13, 2025
1482047
docs: remove get-testnet-eth section from README.md to streamline con…
fakepixels Mar 13, 2025
48fe95a
docs: remove get-testnet-eth section from README.md to streamline con…
dschlabach Mar 13, 2025
4cb619e
chore: set up prettier
dschlabach Mar 17, 2025
2343d55
format
dschlabach Mar 17, 2025
cf23f19
chore: set up prettier
dschlabach Mar 17, 2025
5be6ff4
chore: bump deps
dschlabach Mar 17, 2025
1d19c89
chore: bump deps
dschlabach Mar 17, 2025
042a6e6
chore: bump ver
dschlabach Mar 17, 2025
d2ed26d
1.0.3
dschlabach Mar 17, 2025
3a1b1eb
chore: release `v1.0.3`
dschlabach Mar 17, 2025
6f5e1ee
refactor: clean up tool structure
dschlabach Mar 17, 2025
1b8c67b
refactor: clean up repo structure
dschlabach Mar 18, 2025
f021257
chore: update contributing guide
dschlabach Mar 18, 2025
23af38d
chore: update contributing guide
dschlabach Mar 18, 2025
f2f9c3a
feat: add Base Sepolia support in .env
dschlabach Mar 18, 2025
9aa0116
feat: add Base Sepolia support in .env
dschlabach Mar 18, 2025
0b533f1
impl
dschlabach Mar 18, 2025
e2acc98
gha
dschlabach Mar 18, 2025
1a27c71
chore: add build workflow
dschlabach Mar 18, 2025
3782bad
fix: enable corepack in ci
dschlabach Mar 18, 2025
75f4a3c
fix lint action
dschlabach Mar 18, 2025
31a8b48
chore: add format action
dschlabach Mar 18, 2025
b3c9fe6
format
dschlabach Mar 18, 2025
9135bbe
fix: rename format job
dschlabach Mar 18, 2025
7ee5a2a
docs: enhance README with guidelines for extending Base MCP with new …
fakepixels Mar 18, 2025
1d50b67
chore: configure lint rules (#13)
dschlabach Mar 18, 2025
5209336
docs: enhance README with guidelines for extending Base MCP (#14)
fakepixels Mar 18, 2025
d0d8d69
fix: improve guidance for finding config file
dschlabach Mar 20, 2025
59fceeb
fix: make npm global work
dschlabach Mar 20, 2025
08bbe33
lint
dschlabach Mar 20, 2025
a1c96ac
fix: improve usability of global npm run (#18)
dschlabach Mar 20, 2025
41d0daf
ver
dschlabach Mar 20, 2025
7a49dac
chore: release v1.0.4 (#19)
dschlabach Mar 20, 2025
293662d
readme
dschlabach Mar 20, 2025
419e9cb
chore: update README with new prod run command (#20)
dschlabach Mar 20, 2025
aa1644c
Add NFT Collection Analyzer and DAO Governance tools
Story91 Mar 21, 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
46 changes: 46 additions & 0 deletions .github/ISSUE_TEMPLATE/bug_report.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,46 @@
---
name: Bug report
about: Create a report to help us improve
title: '[BUG]'
labels: bug
assignees: ''
---

## Bug Description

A clear and concise description of what the bug is.

## Steps To Reproduce

1. Go to '...'
2. Click on '....'
3. Scroll down to '....'
4. See error

## Expected Behavior

A clear and concise description of what you expected to happen.

## Actual Behavior

A clear and concise description of what actually happened.

## Screenshots

If applicable, add screenshots to help explain your problem.

## Environment

- OS: [e.g. macOS, Windows, Linux]
- Node.js version: [e.g. 16.14.0]
- npm/yarn version: [e.g. 8.5.0]
- Base MCP version: [e.g. 1.0.0]
- Claude Desktop version (if applicable): [e.g. 1.2.0]

## Additional Context

Add any other context about the problem here.

## Possible Solution

If you have ideas on how to fix the issue, please share them here.
31 changes: 31 additions & 0 deletions .github/ISSUE_TEMPLATE/feature_request.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,31 @@
---
name: Feature request
about: Suggest an idea for this project
title: '[FEATURE] '
labels: enhancement
assignees: ''
---

## Problem Statement

A clear and concise description of what the problem is. Ex. I'm always frustrated when [...]

## Proposed Solution

A clear and concise description of what you want to happen.

## Alternative Solutions

A clear and concise description of any alternative solutions or features you've considered.

## Use Case

Describe how this feature would be used and who would use it.

## Additional Context

Add any other context or screenshots about the feature request here.

## Implementation Ideas

If you have ideas on how to implement this feature, please share them here.
31 changes: 31 additions & 0 deletions .github/PULL_REQUEST_TEMPLATE.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,31 @@
## Description

Please include a summary of the change and which issue is fixed. Please also include relevant motivation and context.

Fixes # (issue)

## Type of change

Please delete options that are not relevant.

- [ ] Bug fix (non-breaking change which fixes an issue)
- [ ] New feature (non-breaking change which adds functionality)
- [ ] Breaking change (fix or feature that would cause existing functionality to not work as expected)
- [ ] Documentation update

## How Has This Been Tested?

Please describe the tests that you ran to verify your changes. Provide instructions so we can reproduce.

## Checklist:

- [ ] My code follows the style guidelines of this project
- [ ] I have performed a self-review of my own code
- [ ] I have commented my code, particularly in hard-to-understand areas
- [ ] I have made corresponding changes to the documentation
- [ ] My changes generate no new warnings
- [ ] I have added tests that prove my fix is effective or that my feature works
- [ ] New and existing unit tests pass locally with my changes
- [ ] Any dependent changes have been merged and published in downstream modules

## Screenshots (if appropriate):
27 changes: 27 additions & 0 deletions .github/workflows/build.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,27 @@
name: Build

on:
pull_request:
branches: [main, master]
push:
branches: [main, master]

jobs:
build:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v3

- name: Setup Node.js
uses: actions/setup-node@v3
with:
node-version: '20'

- name: Enable Corepack
run: corepack enable

- name: Install dependencies
run: yarn install

- name: Build
run: yarn build
27 changes: 27 additions & 0 deletions .github/workflows/format.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,27 @@
name: Format

on:
pull_request:
branches: [main, master]
push:
branches: [main, master]

jobs:
prettier:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v3

- name: Setup Node.js
uses: actions/setup-node@v3
with:
node-version: '20'

- name: Enable Corepack
run: corepack enable

- name: Install dependencies
run: yarn install

- name: Check Format
run: yarn ci:format
27 changes: 27 additions & 0 deletions .github/workflows/lint.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,27 @@
name: Lint

on:
pull_request:
branches: [main, master]
push:
branches: [main, master]

jobs:
eslint:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v3

- name: Setup Node.js
uses: actions/setup-node@v3
with:
node-version: '20'

- name: Enable Corepack
run: corepack enable

- name: Install dependencies
run: yarn install

- name: Run ESLint
run: yarn lint
4 changes: 4 additions & 0 deletions .gitignore
Original file line number Diff line number Diff line change
Expand Up @@ -7,3 +7,7 @@

node_modules
.env

build/*

*.tgz
24 changes: 24 additions & 0 deletions .npmignore
Original file line number Diff line number Diff line change
@@ -0,0 +1,24 @@
# Source files (since we're publishing the compiled output)
src/

# Development files
.editorconfig
.gitignore
.yarnrc.yml
tsconfig.json
yarn.lock
node_modules/

# Environment and configuration files
.env
.env.*
claude_desktop_config.json

# Test files
test-mcp.js

# Misc
.DS_Store
.vscode/
.idea/
*.log
8 changes: 8 additions & 0 deletions .prettierrc
Original file line number Diff line number Diff line change
@@ -0,0 +1,8 @@
{
"plugins": ["@ianvs/prettier-plugin-sort-imports"],
"importOrder": ["<THIRD_PARTY_MODULES>", "^@/(.*)$", "^[./]"],
"importOrderParserPlugins": ["typescript", "jsx", "decorators-legacy"],
"semi": true,
"singleQuote": true,
"trailingComma": "all"
}
39 changes: 39 additions & 0 deletions CODE_OF_CONDUCT.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,39 @@
# Code of Conduct

## Our Pledge

We pledge to make participation in our project and community a harassment-free experience for everyone, regardless of age, body size, disability, ethnicity, gender identity and expression, level of experience, nationality, personal appearance, race, religion, or sexual identity and orientation.

## Our Standards

Examples of behavior that contributes to creating a positive environment include:

- Using welcoming and inclusive language
- Being respectful of differing viewpoints and experiences
- Gracefully accepting constructive criticism
- Focusing on what is best for the community
- Showing empathy towards other community members

Examples of unacceptable behavior include:

- The use of sexualized language or imagery and unwelcome sexual attention or advances
- Trolling, insulting/derogatory comments, and personal or political attacks
- Public or private harassment
- Publishing others' private information, such as a physical or electronic address, without explicit permission
- Other conduct which could reasonably be considered inappropriate in a professional setting

## Our Responsibilities

Project maintainers are responsible for clarifying the standards of acceptable behavior and are expected to take appropriate and fair corrective action in response to any instances of unacceptable behavior.

## Scope

This Code of Conduct applies both within project spaces and in public spaces when an individual is representing the project or its community.

## Enforcement

Instances of abusive, harassing, or otherwise unacceptable behavior may be reported by contacting the project team. All complaints will be reviewed and investigated and will result in a response that is deemed necessary and appropriate to the circumstances.

## Attribution

This Code of Conduct is adapted from the [Contributor Covenant](https://www.contributor-covenant.org), version 1.4, available at [https://www.contributor-covenant.org/version/1/4/code-of-conduct.html](https://www.contributor-covenant.org/version/1/4/code-of-conduct.html)
107 changes: 107 additions & 0 deletions CONTRIBUTING.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,107 @@
# Contributing to Base MCP

Thank you for your interest in contributing to the Base MCP server! This document provides guidelines and instructions for contributing to this project.

## Code of Conduct

Please be respectful and considerate of others when contributing to this project. We aim to foster an inclusive and welcoming community.

## How to Contribute

### Reporting Bugs

If you find a bug, please create an issue on GitHub with the following information:

- A clear, descriptive title
- A detailed description of the bug
- Steps to reproduce the bug
- Expected behavior
- Actual behavior
- Any relevant logs or screenshots
- Your environment (OS, Node.js version, etc.)

### Suggesting Enhancements

If you have an idea for an enhancement, please create an issue on GitHub with the following information:

- A clear, descriptive title
- A detailed description of the enhancement
- Any relevant examples or mockups
- Why this enhancement would be useful

### Pull Requests

1. Fork the repository
2. Create a new branch for your feature or bugfix (`git checkout -b feature/amazing-feature`)
3. Make your changes
4. Run tests to ensure your changes don't break existing functionality
5. Commit your changes (`git commit -m 'Add some amazing feature'`)
6. Push to the branch (`git push origin feature/amazing-feature`)
7. Open a Pull Request. Use [Conventional Commits](https://www.conventionalcommits.org/en/v1.0.0/) as your PR's title.

## Development Setup

1. Clone your fork of the repository
2. Install dependencies: `npm install`
3. Create a `.env` file with your credentials (see README.md)
4. Build the project: `npm run build`
5. Test the MCP server: `npm test`

## Coding Standards

- Follow the existing code style
- Write clear, descriptive commit messages
- Add comments to your code where necessary
- Write tests for new features
- Update documentation when necessary

## Adding New Tools

If you want to add a new tool to the Base MCP server, follow these steps:

1. Create a new file in the `src/tools` directory
2. Implement the tool following the existing patterns
3. Add the tool to the list of available tools in `src/tools/index.ts`
4. Add documentation for the tool in the README.md
5. Add examples of how to use the tool in examples.md
6. Write tests for the tool

Existing project structure:

```
src/
├── tools/
│ ├── index.ts (exports toolsets)
│ ├── [TOOL_NAME]/ <-------------------------- ADD DIR HERE
│ │ ├── index.ts (defines and exports tools)
│ │ ├── schemas.ts (defines input schema)
│ │ └── handlers.ts (implements tool functionality)
│ └── utils/ (shared tool utilities)
```

## Testing

Please ensure that all tests pass before submitting a Pull Request. You can run tests with:

```bash
npm test
```

## Documentation

Please update the documentation when necessary, including:

- README.md
- examples.md
- Code comments
- This CONTRIBUTING.md file

## License

By contributing to this project, you agree that your contributions will be licensed under the project's [MIT License](LICENSE).

## Questions?

If you have any questions about contributing, please create an issue on GitHub or reach out to the maintainers.

Thank you for your contributions!
Loading