Skip to content
Merged
Show file tree
Hide file tree
Changes from 34 commits
Commits
Show all changes
41 commits
Select commit Hold shift + click to select a range
75b1d57
created minimal forc-mcp project
zees-dev Jun 27, 2025
ae1a466
cargo.lock upd
zees-dev Jun 27, 2025
e4dbd3c
upd ci github workflows to include forc-mcp
zees-dev Jun 27, 2025
1f35c53
core mcp files to implement
zees-dev Jul 2, 2025
9e56755
remove mcp server file
zees-dev Jul 4, 2025
d5b67ae
upd main entrypoint for forc-call
zees-dev Jul 4, 2025
6986a1d
project structure files
zees-dev Jul 7, 2025
587f682
forc-call trace events part of call response
zees-dev Jul 15, 2025
70f904e
publickly expose forc-call module functionality
zees-dev Jul 15, 2025
363b13b
forc-mcp cargo.toml dependencies refactored
zees-dev Jul 15, 2025
a8654c6
cargo.lock upd
zees-dev Jul 15, 2025
34173a3
forc mcp server setup for stdio, sse and http-stream
zees-dev Jul 15, 2025
3701f43
forc mcp server - forc-call tool implementation with resources
zees-dev Jul 15, 2025
65cc3df
forc-mcp forc-call unit and e2e tests
zees-dev Jul 15, 2025
75a3e62
forc-mcp unit and e2e tests
zees-dev Jul 15, 2025
35270f5
forc-call mcp resource tests
zees-dev Jul 15, 2025
d420d1c
forc-mcp CLI tool
zees-dev Jul 15, 2025
73c4f29
forc-mcp docs
zees-dev Jul 15, 2025
43ad50b
cargo fmt --all
zees-dev Jul 15, 2025
7d859cc
rcmp dependency patch version removal
zees-dev Jul 15, 2025
fa8d199
forc-mcp documentation update
zees-dev Jul 15, 2025
82f2849
documentation upd
zees-dev Jul 15, 2025
a829f5e
forc-mcp defaults to stdio
zees-dev Jul 15, 2025
07d0058
update ci to exclude forc-mcp workspace tests and test itself in stan…
zees-dev Jul 15, 2025
5437a37
fixed tests
zees-dev Jul 15, 2025
1ac392e
updated forc-mcp docs for forc-call tooling
zees-dev Jul 15, 2025
e16c13c
fixed docs markdown lint issues
zees-dev Jul 15, 2025
656191f
cargo fmt --all
zees-dev Jul 15, 2025
cb68417
added mcp and MCP to spellcheck list
zees-dev Jul 15, 2025
ca1a537
additional spell check words
zees-dev Jul 15, 2025
0bef57d
reduced forc-mcp nesting
zees-dev Jul 15, 2025
5152f2a
cargo fmt --all; fixed test
zees-dev Jul 15, 2025
eb008d8
fixed formatter
zees-dev Jul 16, 2025
af31482
upd forc-mcp - 0.69.1
zees-dev Jul 18, 2025
e455b90
Merge branch 'master' into feat/forc-mcp
zees-dev Jul 18, 2025
04a0877
Merge branch 'master' into feat/forc-mcp
zees-dev Jul 20, 2025
06437ab
added clippy attr to ignore storage_reads var for tests
zees-dev Jul 21, 2025
1cee725
Merge branch 'master' into feat/forc-mcp
zees-dev Jul 21, 2025
05214b4
Merge branch 'master' into feat/forc-mcp
zees-dev Jul 23, 2025
b796f80
GetExecutionTraceArgs doc comments
zees-dev Jul 24, 2025
db24490
Merge branch 'master' into feat/forc-mcp
zees-dev Jul 24, 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
32 changes: 27 additions & 5 deletions .github/workflows/ci.yml
Original file line number Diff line number Diff line change
Expand Up @@ -49,6 +49,7 @@ jobs:
- cargo-run-e2e-test-release
- cargo-test-forc-debug
- cargo-test-forc-client
- cargo-test-forc-mcp
- cargo-test-forc-node
- notify-slack-on-failure
runs-on: ubuntu-latest
Expand Down Expand Up @@ -667,6 +668,27 @@ jobs:
mv fuel-core-${{ needs.get-fuel-core-version.outputs.fuel_core_version }}-x86_64-unknown-linux-gnu/fuel-core /usr/local/bin/fuel-core
- name: Run tests
run: cargo test --locked --release -p forc-client -- --test-threads 1
cargo-test-forc-mcp:
runs-on: buildjet-4vcpu-ubuntu-2204
needs: get-fuel-core-version
steps:
- uses: actions/checkout@v3
- name: Install toolchain
uses: dtolnay/rust-toolchain@master
with:
toolchain: ${{ env.RUST_VERSION }}
targets: "x86_64-unknown-linux-gnu, wasm32-unknown-unknown"
- uses: Swatinem/rust-cache@v2
with:
cache-provider: "buildjet"
- name: Install fuel-core for tests
run: |
curl -sSLf https://github.com/FuelLabs/fuel-core/releases/download/v${{ needs.get-fuel-core-version.outputs.fuel_core_version }}/fuel-core-${{ needs.get-fuel-core-version.outputs.fuel_core_version }}-x86_64-unknown-linux-gnu.tar.gz -L -o fuel-core.tar.gz
tar -xvf fuel-core.tar.gz
chmod +x fuel-core-${{ needs.get-fuel-core-version.outputs.fuel_core_version }}-x86_64-unknown-linux-gnu/fuel-core
mv fuel-core-${{ needs.get-fuel-core-version.outputs.fuel_core_version }}-x86_64-unknown-linux-gnu/fuel-core /usr/local/bin/fuel-core
- name: Run tests
run: cargo test --locked --release -p forc-mcp -- --test-threads 1
cargo-test-forc-node:
runs-on: buildjet-4vcpu-ubuntu-2204
needs: get-fuel-core-version
Expand Down Expand Up @@ -729,7 +751,7 @@ jobs:
with:
cache-provider: "buildjet"
- name: Run tests
run: cargo test --locked --release --workspace --exclude forc-debug --exclude sway-lsp --exclude forc-client --exclude forc --exclude forc-node
run: cargo test --locked --release --workspace --exclude forc-debug --exclude sway-lsp --exclude forc-client --exclude forc-mcp --exclude forc --exclude forc-node
cargo-unused-deps-check:
runs-on: buildjet-4vcpu-ubuntu-2204
steps:
Expand Down Expand Up @@ -948,13 +970,13 @@ jobs:
- name: Strip release binaries x86_64-linux-gnu
if: matrix.job.target == 'x86_64-unknown-linux-gnu'
run: |
for BINARY in forc forc-fmt forc-lsp forc-debug forc-deploy forc-run forc-doc forc-crypto forc-tx forc-submit forc-migrate forc-node forc-publish forc-call; do
for BINARY in forc forc-fmt forc-lsp forc-debug forc-deploy forc-run forc-doc forc-crypto forc-tx forc-submit forc-mcp forc-migrate forc-node forc-publish forc-call; do
strip "target/${{ matrix.job.target }}/release/$BINARY"
done
- name: Strip release binaries aarch64-linux-gnu
if: matrix.job.target == 'aarch64-unknown-linux-gnu'
run: |
for BINARY in forc forc-fmt forc-lsp forc-debug forc-deploy forc-run forc-doc forc-crypto forc-tx forc-submit forc-migrate forc-node forc-publish forc-call; do
for BINARY in forc forc-fmt forc-lsp forc-debug forc-deploy forc-run forc-doc forc-crypto forc-tx forc-submit forc-mcp forc-migrate forc-node forc-publish forc-call; do
docker run --rm -v \
"$PWD/target:/target:Z" \
ghcr.io/cross-rs/${{ matrix.job.target }}:main \
Expand All @@ -964,7 +986,7 @@ jobs:
- name: Strip release binaries mac
if: matrix.job.os == 'macos-latest'
run: |
for BINARY in forc forc-fmt forc-lsp forc-debug forc-deploy forc-run forc-doc forc-crypto forc-tx forc-submit forc-migrate forc-node forc-publish forc-call; do
for BINARY in forc forc-fmt forc-lsp forc-debug forc-deploy forc-run forc-doc forc-crypto forc-tx forc-submit forc-mcp forc-migrate forc-node forc-publish forc-call; do
strip -x "target/${{ matrix.job.target }}/release/$BINARY"
done

Expand All @@ -978,7 +1000,7 @@ jobs:
ZIP_FILE_NAME=forc-binaries-${{ env.PLATFORM_NAME }}_${{ env.ARCH }}.tar.gz
echo "ZIP_FILE_NAME=$ZIP_FILE_NAME" >> $GITHUB_ENV
mkdir -pv ./forc-binaries
for BINARY in forc forc-fmt forc-lsp forc-debug forc-deploy forc-run forc-doc forc-crypto forc-tx forc-submit forc-migrate forc-node forc-publish forc-call; do
for BINARY in forc forc-fmt forc-lsp forc-debug forc-deploy forc-run forc-doc forc-crypto forc-tx forc-submit forc-mcp forc-migrate forc-node forc-publish forc-call; do
cp "target/${{ matrix.job.target }}/release/$BINARY" ./forc-binaries
done
tar -czvf $ZIP_FILE_NAME ./forc-binaries
Expand Down
1 change: 1 addition & 0 deletions .github/workflows/gh-pages.yml
Original file line number Diff line number Diff line change
Expand Up @@ -31,6 +31,7 @@ jobs:
cargo install --locked --debug --path ./forc-plugins/forc-fmt
cargo install --locked --debug --path ./forc-plugins/forc-doc
cargo install --locked --debug --path ./forc-plugins/forc-lsp
cargo install --locked --debug --path ./forc-plugins/forc-mcp
cargo install --locked --debug --path ./forc-plugins/forc-migrate
cargo install --locked --debug --path ./forc-plugins/forc-node
cargo install --locked --debug --path ./forc-plugins/forc-publish
Expand Down
188 changes: 188 additions & 0 deletions Cargo.lock

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

3 changes: 3 additions & 0 deletions Cargo.toml
Original file line number Diff line number Diff line change
Expand Up @@ -50,6 +50,7 @@ forc-debug = { path = "forc-plugins/forc-debug/", version = "0.69.1" }
forc-doc = { path = "forc-plugins/forc-doc/", version = "0.69.1" }
forc-fmt = { path = "forc-plugins/forc-fmt/", version = "0.69.1" }
forc-lsp = { path = "forc-plugins/forc-lsp/", version = "0.69.1" }
forc-mcp = { path = "forc-plugins/forc-mcp/", version = "0.69.1" }
forc-migrate = { path = "forc-plugins/forc-migrate/", version = "0.69.1" }
forc-publish = { path = "forc-plugins/forc-publish/", version = "0.69.1" }
forc-tx = { path = "forc-plugins/forc-tx/", version = "0.69.1" }
Expand Down Expand Up @@ -112,6 +113,7 @@ assert_matches = "1.5"
async-trait = "0.1"
aws-config = "1.5"
aws-sdk-kms = "1.44"
axum = "0.8"
byte-unit = "5.1"
bytes = "1.7"
chrono = { version = "0.4", default-features = false }
Expand Down Expand Up @@ -197,6 +199,7 @@ regex = "1.10"
reqwest = "0.12"
rexpect = "0.6"
revm = "14.0"
rmcp = "0.2"
ropey = "1.5"
rpassword = "7.2"
rustc-hash = "1.1"
Expand Down
11 changes: 11 additions & 0 deletions docs/book/spell-check-custom-words.txt
Original file line number Diff line number Diff line change
Expand Up @@ -253,3 +253,14 @@ invariants
postfix
impl
Impl
mcp
MCP
extensibility
Extensibility
integrations
streamable
Streamable
schemas
CallResponse
md
URIs
2 changes: 2 additions & 0 deletions docs/book/src/SUMMARY.md
Original file line number Diff line number Diff line change
Expand Up @@ -109,6 +109,8 @@
- [forc doc](./forc/plugins/forc_doc.md)
- [forc fmt](./forc/plugins/forc_fmt.md)
- [forc lsp](./forc/plugins/forc_lsp.md)
- [forc mcp](./forc/plugins/forc_mcp/index.md)
- [forc-call tool](./forc/plugins/forc_mcp/forc_call_tool/index.md)
- [forc migrate](./forc/plugins/forc_migrate.md)
- [forc node](./forc/plugins/forc_node.md)
- [forc publish](./forc/plugins/forc_publish.md)
Loading
Loading